home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 31
/
Aminet 31 (1999)(Schatztruhe)[!][Jun 1999].iso
/
Aminet
/
mus
/
midi
/
XGToolset5_src.lha
/
XGToolset_src
/
XGMPart
/
XGMpart.c
< prev
next >
Wrap
C/C++ Source or Header
|
1999-03-15
|
134KB
|
3,059 lines
/*
XG-Multipart-Editor V1.4
A Bars and Pipes tool for editing the DB50-XG-board from YAMAHA. It's
also useable for other GM-equipment. But then don't touch the
Bank-slider.
Use it together with the other XG ... .ptool ' s -
© 1998 Alfred & Matthias Faust
The Tool-code based farly on the code for the "pc3.ptool" from Richard
Hagen. That's a very good tool, many thanks to him.
Richard has written his tool with DICE. We altered the code to compile
with the free GNU-C-compiler of the ADE. Especially the part was
transcripted, that place the imagedate in chip-RAM, because the
GNU-C-compiler hasn't as yet a keyword like DICE or other compiler for
this.
This code is released into the Public Domain, and may be freely
distributed in its original form.
It is supplied ``as is'', and comes with no warranty. This program code
was released because it might be useful as a starting point for other
programmers. However, if any damage arises from its use, the original
author and we will not be held liable.
You are free to use and modify this code to your heart's content,
provided you acknowledge me as the original author in any code that you
might distribute which is based largely on this code.
I acknowledge that the design of this tool is influenced strongly by
the example code supplied with the Rules for Tools package. However, I
have made substantial contributions of my own.
Matthias & Alfred Faust
j.k.dax@t-online.de
History:
1.0 (17.11.1998)
Initial Release.
1.1 (06.01.1999)
Removed a bug in the Bank-selection
now works fine
1.2 (03.02.1999)
altered the order of the sysex, written to track
1.3 (13.02.1999)
all slidervalues will be stored with the tool in the track
1.4 (15.03.1999)
altered the GUI
added 4 Pitch-EG-sliders
*/
#include "bars.h"
#include "myheader.h" // from R.Hagen
#include <libraries/dos.h>
#include <proto/exec.h>
#include <proto/intuition.h>
#include <proto/graphics.h>
#include <exec/memory.h>
#include <exec/execbase.h>
#include <exec/types.h>
#include <string.h>
#include <intuition/intuition.h>
#include "soundmatrix.c" //all the soundnames
char version[]="\0$VER:MultipartXG-Edit 1.4(15.03.1999) © Alfred & Matthias Faust";
#define MPXG_NAME "XG-Multipart-Edit"
#define MPXG_ID 0x34505847
#define MPXG_TYPE (TOOL_NORMAL | TOOL_NOTPAD)
//all the values of the slider-storage
UBYTE initstorage[720]={
0,0,0,0,1,1,24,8,0,100,64,64,127,64,127,0,127,0,40,0,64,64,64,64,64,64,64,64,0,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,
0,0,0,0,1,1,24,8,0,100,64,64,127,64,127,0,127,0,40,0,64,64,64,64,64,64,64,64,0,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,
0,0,0,0,1,1,24,8,0,100,64,64,127,64,127,0,127,0,40,0,64,64,64,64,64,64,64,64,0,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,
0,0,0,0,1,1,24,8,0,100,64,64,127,64,127,0,127,0,40,0,64,64,64,64,64,64,64,64,0,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,
0,0,0,0,1,1,24,8,0,100,64,64,127,64,127,0,127,0,40,0,64,64,64,64,64,64,64,64,0,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,
0,0,0,0,1,1,24,8,0,100,64,64,127,64,127,0,127,0,40,0,64,64,64,64,64,64,64,64,0,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,
0,0,0,0,1,1,24,8,0,100,64,64,127,64,127,0,127,0,40,0,64,64,64,64,64,64,64,64,0,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,
0,0,0,0,1,1,24,8,0,100,64,64,127,64,127,0,127,0,40,0,64,64,64,64,64,64,64,64,0,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,
0,0,0,0,1,1,24,8,0,100,64,64,127,64,127,0,127,0,40,0,64,64,64,64,64,64,64,64,0,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,
0,0,0,0,1,1,24,8,0,100,64,64,127,64,127,0,127,0,40,0,64,64,64,64,64,64,64,64,0,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,
0,0,0,0,1,1,24,8,0,100,64,64,127,64,127,0,127,0,40,0,64,64,64,64,64,64,64,64,0,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,
0,0,0,0,1,1,24,8,0,100,64,64,127,64,127,0,127,0,40,0,64,64,64,64,64,64,64,64,0,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,
0,0,0,0,1,1,24,8,0,100,64,64,127,64,127,0,127,0,40,0,64,64,64,64,64,64,64,64,0,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,
0,0,0,0,1,1,24,8,0,100,64,64,127,64,127,0,127,0,40,0,64,64,64,64,64,64,64,64,0,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,
0,0,0,0,1,1,24,8,0,100,64,64,127,64,127,0,127,0,40,0,64,64,64,64,64,64,64,64,0,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,
0,0,0,0,1,1,24,8,0,100,64,64,127,64,127,0,127,0,40,0,64,64,64,64,64,64,64,64,0,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64};
// translation between the value of tool->bank and used value
UBYTE bnk[]=
{0, 1, 3, 6, 8, 12, 14, 16, 17, 18, 19, 20, 24, 25, 27, 28, 32, 33, 34, 35, 36, 37, 38, 40,
41, 42, 43, 45, 64, 65, 66, 67, 68, 69, 70, 71, 72, 96, 97, 98, 99, 100, 101};
// the litte Icon in the pipeline
UWORD *MPXG=NULL;
static UWORD MPXGdata[] =
{
/* Plane 0 */
0x7FFF,0xFE00,
0x7FFF,0xFE00,
0x600F,0xEE00,
0x6007,0xCE00,
0x7FF1,0x8E00,
0x6000,0x0E00,
0x6000,0x0E00,
0x7FF1,0x8E00,
0x6007,0xCE00,
0x600F,0xEE00,
0x7FFF,0xFE00,
0x7FFF,0xFE00,
/* Plane 1 */
0x0000,0x0200,
0x0000,0x0600,
0x1CCF,0xFE00,
0x1CC7,0xFE00,
0x9FF1,0xFF00,
0x9CCC,0x7F00,
0x9CCC,0x7F00,
0x9FF1,0xFF00,
0x1CC7,0xFE00,
0x1CCF,0xFE00,
0x1FFF,0xFE00,
0x3FFF,0xFE00,
/* Plane 2 */
0x0000,0x0000,
0x0000,0x0000,
0x1FFF,0xF800,
0x1FFF,0xF800,
0x1FFF,0xF800,
0x1FFF,0xF800,
0x1FFF,0xF800,
0x1FFF,0xF800,
0x1FFF,0xF800,
0x1FFF,0xF800,
0x0000,0x0000,
0x0000,0x0000
};
static struct Image MPXG_image = {
0, 0,
24 , 12 , 3 ,
NULL,
0x1f, 0x00,
NULL
};
//Definitions of the gadgets
#define VOICETYP_GADGET 1
#define BANK_GADGET 2
#define PROGRAM_GADGET 3
#define MIDICHAN_GADGET 4
#define PART_GADGET 5
#define MONOPOLY_GADGET 6
#define KEYAS_GADGET 7
#define NOTESHIFT_GADGET 8
#define DETUNER_GADGET 9
#define DETUNEF_GADGET 10
#define VOLUME_GADGET 11
#define VELSDEPTH_GADGET 12
#define VELSOFFSET_GADGET 13
#define VELIHIGH_GADGET 14
#define PAN_GADGET 15
#define NOTELIHIGH_GADGET 16
#define NOTELILOW_GADGET 17
#define DRY_GADGET 18
#define CHORUS_GADGET 19
#define REVERB_GADGET 20
#define VARFX_GADGET 21
#define VIBRATE_GADGET 22
#define VIBDEPTH_GADGET 23
#define VIBDELAY_GADGET 24
#define FICUTOFFREQ_GADGET 25
#define FICUTOFFRESON_GADGET 26
#define ATTACK_GADGET 27
#define DECAY_GADGET 28
#define RELEASE_GADGET 29
#define VXON_GADGET 30
#define TUNEC_GADGET 31
#define TUNECIS_GADGET 32
#define TUNED_GADGET 33
#define TUNEDIS_GADGET 34
#define TUNEE_GADGET 35
#define TUNEF_GADGET 36
#define TUNEFIS_GADGET 37
#define TUNEG_GADGET 38
#define TUNEGIS_GADGET 39
#define TUNEA_GADGET 40
#define TUNEAIS_GADGET 41
#define TUNEB_GADGET 42
#define PINILVL_GADGET 43
#define PATTACK_GADGET 44
#define PRELLVL_GADGET 45
#define PRELTIM_GADGET 46
#define WRITE_GADGET 47
#define DEFAULT_GADGET 48
//all the gadgets
// VOICETYP gadget.
struct PropInfo MPXGGadget1SInfo = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/2 , -1, };
struct Image MPXGImage1 = {
0, 0, 10, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct Gadget MPXGGadget1 = {
NULL, 33, 29, 14, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage1, NULL, NULL, NULL, (APTR)&MPXGGadget1SInfo, VOICETYP_GADGET, NULL };
// BANK gadget.
struct PropInfo MPXGGadget2Info = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/128, -1, };
struct Image MPXGImage2 = {
0, 0, 10, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText2 = {
2, 0, JAM1, -43, 1, NULL, " Bank", NULL };
struct Gadget MPXGGadget2 = {
&MPXGGadget1, 48, 50, 157, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage2, NULL, &MPXGText2, NULL, (APTR)&MPXGGadget2Info, BANK_GADGET, NULL };
// PROGRAM gadget.
struct PropInfo MPXGGadget3Info = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/128, -1, };
struct Image MPXGImage3 = {
0, 0, 102, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText3 = {
2, 0, JAM1, -43, 1, NULL, "Prgm#", NULL };
struct Gadget MPXGGadget3 = {
&MPXGGadget2, 48, 60, 157, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage3, NULL, &MPXGText3, NULL, (APTR)&MPXGGadget3Info, PROGRAM_GADGET, NULL };
// MIDI-CHANNEL gadget.
struct PropInfo MPXGGadget4SInfo = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY *1/16, -1, };
struct Image MPXGImage4 = {
0, 0, 10, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText4 = {
2, 0, JAM1, 35, 1, NULL, "MIDI-Ch:", NULL };
struct Gadget MPXGGadget4 = {
&MPXGGadget3, 125, 17, 28, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage4, NULL, &MPXGText4, NULL, (APTR)&MPXGGadget4SInfo, MIDICHAN_GADGET, NULL };
// PART gadget.
struct PropInfo MPXGGadget5SInfo = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/16, -1, };
struct Image MPXGImage5 = {
0, 0, 10, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText5 = {
2, 0, JAM1, 33, 1, NULL, "Part:", NULL };
struct Gadget MPXGGadget5 = {
&MPXGGadget4, 33, 17, 28, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage5, NULL, &MPXGText5, NULL, (APTR)&MPXGGadget5SInfo, PART_GADGET, NULL };
// MONOPOLY gadget.
struct PropInfo MPXGGadget6SInfo = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/2 , -1, };
struct Image MPXGImage6 = {
0, 0, 10, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct Gadget MPXGGadget6 = {
&MPXGGadget5, 125, 29, 14, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage6, NULL, NULL, NULL, (APTR)&MPXGGadget6SInfo, MONOPOLY_GADGET, NULL };
// KEYAS gadget.
struct PropInfo MPXGGadget7SInfo = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/3 , -1, };
struct Image MPXGImage7 = {
0, 0, 10, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct Gadget MPXGGadget7 = {
&MPXGGadget6, 182, 29, 14, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage7, NULL, NULL, NULL, (APTR)&MPXGGadget7SInfo, KEYAS_GADGET, NULL };
// NOTESHIFT Gadget
struct PropInfo MPXGGadget8Info = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/49, -1, };
struct Image MPXGImage8 = {
0, 0, 102, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText8 = {
2, 0, JAM1, -63, 1, NULL, "Ntshift", NULL };
struct Gadget MPXGGadget8 = {
&MPXGGadget7, 70, 70, 135, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage8, NULL, &MPXGText8, NULL, (APTR)&MPXGGadget8Info, NOTESHIFT_GADGET, NULL };
// DETUNE rough gadget
struct PropInfo MPXGGadget9Info = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/16, -1, };
struct Image MPXGImage9 = {
0, 0, 102, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText9 = {
2, 0, JAM1, -63, 1, NULL, "DetRogh", NULL };
struct Gadget MPXGGadget9 = {
&MPXGGadget8, 70, 80, 28, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage9, NULL, &MPXGText9, NULL, (APTR)&MPXGGadget9Info, DETUNER_GADGET, NULL };
// DETUNE fine Gadget
struct PropInfo MPXGGadget10Info = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/255, -1, };
struct Image MPXGImage10 = {
0, 0, 102, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText10 = {
2, 0, JAM1, -53, 1, NULL, "DtFine", NULL };
struct Gadget MPXGGadget10 = {
&MPXGGadget9, 177, 80, 28, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage10, NULL, &MPXGText10, NULL, (APTR)&MPXGGadget10Info, DETUNEF_GADGET, NULL };
// VOLUME Gadget
struct PropInfo MPXGGadget11Info = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/128, -1, };
struct Image MPXGImage11 = {
0, 0, 102, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText11 = {
2, 0, JAM1, -63, 1, NULL, "Volume ", NULL };
struct Gadget MPXGGadget11 = {
&MPXGGadget10, 70, 90, 135, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage11, NULL, &MPXGText11, NULL, (APTR)&MPXGGadget11Info, VOLUME_GADGET, NULL };
// VELSDEPTH Gadget
struct PropInfo MPXGGadget12Info = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/128, -1, };
struct Image MPXGImage12 = {
0, 0, 102, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText12 = {
2, 0, JAM1, -63, 1, NULL, "VelsDpt", NULL };
struct Gadget MPXGGadget12 = {
&MPXGGadget11, 70, 100, 135, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage12, NULL, &MPXGText12, NULL, (APTR)&MPXGGadget12Info, VELSDEPTH_GADGET, NULL };
// VELSOFFSET Gadget
struct PropInfo MPXGGadget13Info = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/128, -1, };
struct Image MPXGImage13 = {
0, 0, 102, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText13 = {
2, 0, JAM1, -63, 1, NULL, "VelsOff", NULL };
struct Gadget MPXGGadget13 = {
&MPXGGadget12, 70, 110, 135, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage13, NULL, &MPXGText13, NULL, (APTR)&MPXGGadget13Info, VELSOFFSET_GADGET, NULL };
// VELIHIGH Gadget
struct PropInfo MPXGGadget14Info = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/128, -1, };
struct Image MPXGImage14 = {
0, 0, 102, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText14 = {
2, 0, JAM1, -63, 1, NULL, "VeLiHig", NULL };
struct Gadget MPXGGadget14 = {
&MPXGGadget13, 70, 120, 135, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage14, NULL, &MPXGText14, NULL, (APTR)&MPXGGadget14Info, VELIHIGH_GADGET, NULL };
// PAN Gadget
struct PropInfo MPXGGadget15Info = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/128, -1, };
struct Image MPXGImage15 = {
0, 0, 102, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText15 = {
2, 0, JAM1, -63, 1, NULL, "Panpot ", NULL };
struct Gadget MPXGGadget15 = {
&MPXGGadget14, 70, 130, 135, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage15, NULL, &MPXGText15, NULL, (APTR)&MPXGGadget15Info, PAN_GADGET, NULL };
// NOTELIHIGH Gadget
struct PropInfo MPXGGadget16Info = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/128, -1, };
struct Image MPXGImage16 = {
0, 0, 102, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText16 = {
2, 0, JAM1, -63, 1, NULL, "NoLiHig", NULL };
struct Gadget MPXGGadget16 = {
&MPXGGadget15, 70, 140, 135, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage16, NULL, &MPXGText16, NULL, (APTR)&MPXGGadget16Info, NOTELIHIGH_GADGET, NULL };
// NOTELILOW Gadget
struct PropInfo MPXGGadget17Info = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/128, -1, };
struct Image MPXGImage17 = {
0, 0, 102, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText17 = {
2, 0, JAM1, -63, 1, NULL, "NoLiLow", NULL };
struct Gadget MPXGGadget17 = {
&MPXGGadget16, 70, 150, 135, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage17, NULL, &MPXGText17, NULL, (APTR)&MPXGGadget17Info, NOTELILOW_GADGET, NULL };
// DRY Level Gadget
struct PropInfo MPXGGadget18Info = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/128, -1, };
struct Image MPXGImage18 = {
0, 0, 102, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText18 = {
2, 0, JAM1, -63, 1, NULL, "DryLevl", NULL };
struct Gadget MPXGGadget18 = {
&MPXGGadget17, 70, 160, 135, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage18, NULL, &MPXGText18, NULL, (APTR)&MPXGGadget18Info, DRY_GADGET, NULL };
// CHORUS Gadget
struct PropInfo MPXGGadget19Info = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/128, -1, };
struct Image MPXGImage19 = {
0, 0, 102, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText19 = {
2, 0, JAM1, -63, 1, NULL, "Chorus ", NULL };
struct Gadget MPXGGadget19 = {
&MPXGGadget18, 70, 170, 135, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage19, NULL, &MPXGText19, NULL, (APTR)&MPXGGadget19Info, CHORUS_GADGET, NULL };
// REVERB Gadget
struct PropInfo MPXGGadget20Info = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/128, -1, };
struct Image MPXGImage20 = {
0, 0, 102, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText20 = {
2, 0, JAM1, -63, 1, NULL, "Reverb ", NULL };
struct Gadget MPXGGadget20 = {
&MPXGGadget19, 70, 180, 135, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage20, NULL, &MPXGText20, NULL, (APTR)&MPXGGadget20Info, REVERB_GADGET, NULL };
// VARFX Gadget
struct PropInfo MPXGGadget21Info = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/128, -1, };
struct Image MPXGImage21 = {
0, 0, 102, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText21 = {
2, 0, JAM1, -63, 1, NULL, "Var-FX ", NULL };
struct Gadget MPXGGadget21 = {
&MPXGGadget20, 70, 190, 135, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage21, NULL, &MPXGText21, NULL, (APTR)&MPXGGadget21Info, VARFX_GADGET, NULL };
// VIBRATE Gadget
struct PropInfo MPXGGadget22Info = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/128, -1, };
struct Image MPXGImage22 = {
0, 0, 102, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText22 = {
2, 0, JAM1, -63, 1, NULL, "VibRate", NULL };
struct Gadget MPXGGadget22 = {
&MPXGGadget21, 70, 200, 135, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage22, NULL, &MPXGText22, NULL, (APTR)&MPXGGadget22Info, VIBRATE_GADGET, NULL };
// VIBDEPTH Gadget
struct PropInfo MPXGGadget23Info = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/128, -1, };
struct Image MPXGImage23 = {
0, 0, 102, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText23 = {
2, 0, JAM1, -63, 1, NULL, "VibDpth", NULL };
struct Gadget MPXGGadget23 = {
&MPXGGadget22, 70, 210, 135, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage23, NULL, &MPXGText23, NULL, (APTR)&MPXGGadget23Info, VIBDEPTH_GADGET, NULL };
// VIBDELAY Gadget
struct PropInfo MPXGGadget24Info = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/128, -1, };
struct Image MPXGImage24 = {
0, 0, 102, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText24 = {
2, 0, JAM1, -63, 1, NULL, "VibDlay", NULL };
struct Gadget MPXGGadget24 = {
&MPXGGadget23, 70, 220, 135, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage24, NULL, &MPXGText24, NULL, (APTR)&MPXGGadget24Info, VIBDELAY_GADGET, NULL };
// FICUTOFFREQ Gadget
struct PropInfo MPXGGadget25Info = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/128, -1, };
struct Image MPXGImage25 = {
0, 0, 102, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText25 = {
2, 0, JAM1, -63, 1, NULL, "FiCtFrq", NULL };
struct Gadget MPXGGadget25 = {
&MPXGGadget24, 70, 230, 135, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage25, NULL, &MPXGText25, NULL, (APTR)&MPXGGadget25Info, FICUTOFFREQ_GADGET, NULL };
// FICUTOFRESON Gadget
struct PropInfo MPXGGadget26Info = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/128, -1, };
struct Image MPXGImage26 = {
0, 0, 102, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText26 = {
2, 0, JAM1, -63, 1, NULL, "FiCtRes", NULL };
struct Gadget MPXGGadget26 = {
&MPXGGadget25, 70, 240, 135, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage26, NULL, &MPXGText26, NULL, (APTR)&MPXGGadget26Info, FICUTOFFRESON_GADGET, NULL };
// ATTACK Gadget
struct PropInfo MPXGGadget27Info = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/128, -1, };
struct Image MPXGImage27 = {
0, 0, 102, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText27 = {
2, 0, JAM1, -63, 1, NULL, "Attack ", NULL };
struct Gadget MPXGGadget27 = {
&MPXGGadget26, 320, 50, 135, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage27, NULL, &MPXGText27, NULL, (APTR)&MPXGGadget27Info, ATTACK_GADGET, NULL };
// DECAY Gadget
struct PropInfo MPXGGadget28Info = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/128, -1, };
struct Image MPXGImage28 = {
0, 0, 102, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText28 = {
2, 0, JAM1, -63, 1, NULL, "Decay ", NULL };
struct Gadget MPXGGadget28 = {
&MPXGGadget27, 320, 60, 135, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage28, NULL, &MPXGText28, NULL, (APTR)&MPXGGadget28Info, DECAY_GADGET, NULL };
// RELEASE Gadget
struct PropInfo MPXGGadget29Info = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/128, -1, };
struct Image MPXGImage29 = {
0, 0, 102, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText29 = {
2, 0, JAM1, -63, 1, NULL, "Release", NULL };
struct Gadget MPXGGadget29 = {
&MPXGGadget28, 320, 70, 135, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage29, NULL, &MPXGText29, NULL, (APTR)&MPXGGadget29Info, RELEASE_GADGET, NULL };
// VXON Gadget
UBYTE boolchar[] = {"-"};
struct IntuiText MPXGIText30 = { 4, 0, JAM1, 0, 0, NULL, boolchar, NULL };
struct Gadget MPXGGadget30 = {
&MPXGGadget29,58,191,8,7,GFLG_GADGHBOX|GFLG_GADGHIMAGE,GADGIMMEDIATE|RELVERIFY|TOGGLESELECT,
BOOLGADGET,NULL,NULL,&MPXGIText30,NULL,NULL,VXON_GADGET,NULL
};
// TUNEC Gadget
struct PropInfo MPXGGadget31Info = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/128, -1, };
struct Image MPXGImage31 = {
0, 0, 102, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText31 = {
2, 0, JAM1, -63, 1, NULL, "Tune C ", NULL };
struct Gadget MPXGGadget31 = {
&MPXGGadget30, 320, 130, 135, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage31, NULL, &MPXGText31, NULL, (APTR)&MPXGGadget31Info, TUNEC_GADGET, NULL };
// TUNEC# Gadget
struct PropInfo MPXGGadget32Info = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/128, -1, };
struct Image MPXGImage32 = {
0, 0, 102, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText32 = {
2, 0, JAM1, -63, 1, NULL, "Tune C#", NULL };
struct Gadget MPXGGadget32 = {
&MPXGGadget31, 320, 140, 135, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage32, NULL, &MPXGText32, NULL, (APTR)&MPXGGadget32Info, TUNECIS_GADGET, NULL };
// TUNED Gadget
struct PropInfo MPXGGadget33Info = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/128, -1, };
struct Image MPXGImage33 = {
0, 0, 102, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText33 = {
2, 0, JAM1, -63, 1, NULL, "Tune D ", NULL };
struct Gadget MPXGGadget33 = {
&MPXGGadget32, 320, 150, 135, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage33, NULL, &MPXGText33, NULL, (APTR)&MPXGGadget33Info, TUNED_GADGET, NULL };
// TUNED# Gadget
struct PropInfo MPXGGadget34Info = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/128, -1, };
struct Image MPXGImage34 = {
0, 0, 102, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText34 = {
2, 0, JAM1, -63, 1, NULL, "Tune D#", NULL };
struct Gadget MPXGGadget34 = {
&MPXGGadget33, 320, 160, 135, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage34, NULL, &MPXGText34, NULL, (APTR)&MPXGGadget34Info, TUNEDIS_GADGET, NULL };
// TUNEE Gadget
struct PropInfo MPXGGadget35Info = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/128, -1, };
struct Image MPXGImage35 = {
0, 0, 102, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText35 = {
2, 0, JAM1, -63, 1, NULL, "Tune E ", NULL };
struct Gadget MPXGGadget35 = {
&MPXGGadget34, 320, 170, 135, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage35, NULL, &MPXGText35, NULL, (APTR)&MPXGGadget35Info, TUNEE_GADGET, NULL };
// TUNEF Gadget
struct PropInfo MPXGGadget36Info = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/128, -1, };
struct Image MPXGImage36 = {
0, 0, 102, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText36 = {
2, 0, JAM1, -63, 1, NULL, "Tune F ", NULL };
struct Gadget MPXGGadget36 = {
&MPXGGadget35, 320, 180, 135, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage36, NULL, &MPXGText36, NULL, (APTR)&MPXGGadget36Info, TUNEF_GADGET, NULL };
// TUNEF# Gadget
struct PropInfo MPXGGadget37Info = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/128, -1, };
struct Image MPXGImage37 = {
0, 0, 102, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText37 = {
2, 0, JAM1, -63, 1, NULL, "Tune F#", NULL };
struct Gadget MPXGGadget37 = {
&MPXGGadget36, 320, 190, 135, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage37, NULL, &MPXGText37, NULL, (APTR)&MPXGGadget37Info, TUNEFIS_GADGET, NULL };
// TUNEG Gadget
struct PropInfo MPXGGadget38Info = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/128, -1, };
struct Image MPXGImage38 = {
0, 0, 102, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText38 = {
2, 0, JAM1, -63, 1, NULL, "Tune G ", NULL };
struct Gadget MPXGGadget38 = {
&MPXGGadget37, 320, 200, 135, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage38, NULL, &MPXGText38, NULL, (APTR)&MPXGGadget38Info, TUNEG_GADGET, NULL };
// TUNEG# Gadget
struct PropInfo MPXGGadget39Info = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/128, -1, };
struct Image MPXGImage39 = {
0, 0, 102, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText39 = {
2, 0, JAM1, -63, 1, NULL, "Tune G#", NULL };
struct Gadget MPXGGadget39 = {
&MPXGGadget38, 320, 210, 135, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)& MPXGImage39, NULL, &MPXGText39, NULL, (APTR)&MPXGGadget39Info, TUNEGIS_GADGET, NULL };
// TUNEA Gadget
struct PropInfo MPXGGadget40Info = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/128, -1, };
struct Image MPXGImage40 = {
0, 0, 102, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText40 = {
2, 0, JAM1, -63, 1, NULL, "Tune A ", NULL };
struct Gadget MPXGGadget40 = {
&MPXGGadget39, 320, 220, 135, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage40, NULL, &MPXGText40, NULL, (APTR)&MPXGGadget40Info, TUNEA_GADGET, NULL };
// TUNEA# Gadget
struct PropInfo MPXGGadget41Info = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/128, -1, };
struct Image MPXGImage41 = {
0, 0, 102, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText41 = {
2, 0, JAM1, -63, 1, NULL, "Tune A#", NULL };
struct Gadget MPXGGadget41 = {
&MPXGGadget40, 320, 230, 135, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage41, NULL, &MPXGText41, NULL, (APTR)&MPXGGadget41Info, TUNEAIS_GADGET, NULL };
// TUNEB Gadget
struct PropInfo MPXGGadget42Info = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/128, -1, };
struct Image MPXGImage42 = {
0, 0, 102, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText42 = {
2, 0, JAM1, -63, 1, NULL, "Tune B ", NULL };
struct Gadget MPXGGadget42 = {
&MPXGGadget41, 320, 240, 135, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage42, NULL, &MPXGText42, NULL, (APTR)&MPXGGadget42Info, TUNEB_GADGET, NULL };
// PINILVL Gadget
struct PropInfo MPXGGadget43Info = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/128, -1, };
struct Image MPXGImage43 = {
0, 0, 102, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText43 = {
2, 0, JAM1, -63, 1, NULL, "PIniLvl", NULL };
struct Gadget MPXGGadget43 = {
&MPXGGadget42, 320, 80, 135, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)& MPXGImage43, NULL, &MPXGText43, NULL, (APTR)&MPXGGadget43Info, PINILVL_GADGET, NULL };
// PATTACK Gadget
struct PropInfo MPXGGadget44Info = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/128, -1, };
struct Image MPXGImage44 = {
0, 0, 102, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText44 = {
2, 0, JAM1, -63, 1, NULL, "PAttack", NULL };
struct Gadget MPXGGadget44 = {
&MPXGGadget43, 320, 90, 135, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage44, NULL, &MPXGText44, NULL, (APTR)&MPXGGadget44Info, PATTACK_GADGET, NULL };
// PRELLVL Gadget
struct PropInfo MPXGGadget45Info = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/128, -1, };
struct Image MPXGImage45 = {
0, 0, 102, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText45 = {
2, 0, JAM1, -63, 1, NULL, "PRelLvl", NULL };
struct Gadget MPXGGadget45 = {
&MPXGGadget44, 320, 100, 135, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage45, NULL, &MPXGText45, NULL, (APTR)&MPXGGadget45Info, PRELLVL_GADGET, NULL };
// PRELTIM Gadget
struct PropInfo MPXGGadget46Info = {
AUTOKNOB+FREEHORIZ, 0, -1, MAXBODY * 1/128, -1, };
struct Image MPXGImage46 = {
0, 0, 102, 6, 0, NULL, 0x0000, 0x0000, NULL };
struct IntuiText MPXGText46 = {
2, 0, JAM1, -63, 1, NULL, "PRelTim", NULL };
struct Gadget MPXGGadget46 = {
&MPXGGadget45, 320, 110, 135, 8, GFLG_GADGHBOX|GFLG_GADGHIMAGE, RELVERIFY|GADGIMMEDIATE, PROPGADGET,
(APTR)&MPXGImage46, NULL, &MPXGText46, NULL, (APTR)&MPXGGadget46Info, PRELTIM_GADGET, NULL };
/* Write gadget. */
struct IntuiText MPXGIText47 = {
4,0,JAM1,4,2,NULL,"Write",NULL
};
struct Gadget MPXGGadget47 = {
&MPXGGadget46,320, 20, 50,11,GFLG_GADGHBOX|GFLG_GADGHIMAGE,RELVERIFY|GADGIMMEDIATE,BOOLGADGET,
(APTR)NULL,NULL,&MPXGIText47,NULL,NULL,WRITE_GADGET,NULL
};
/* Default gadget. */
struct IntuiText MPXGIText48 = {
4,0,JAM1,4,2,NULL,"Default",NULL
};
struct Gadget MPXGGadget48 = {
&MPXGGadget47,390, 20, 65,11,GFLG_GADGHBOX|GFLG_GADGHIMAGE,RELVERIFY|GADGIMMEDIATE,BOOLGADGET,
(APTR)NULL,NULL,&MPXGIText48,NULL,NULL,DEFAULT_GADGET,NULL
};
//the mainwindowstructure
struct NewWindow MPXGNewWindowStructure1 = {
0, 10,
500, 260,
0, 6,
GADGETDOWN|GADGETUP|CLOSEWINDOW,
WINDOWDRAG|WINDOWDEPTH|WINDOWCLOSE|ACTIVATE|NOCAREREFRESH,
&MPXGGadget48,
NULL,
"XG Multipart Editor",
NULL,
NULL,
5, 5,
-1, -1,
CUSTOMSCREEN
};
extern struct ExecBase * SysBase;
UBYTE p, prgrm, banknr, votyres=0, ins=0;
struct MPXGTool {
struct Tool tool;
UBYTE voicetyp;
UBYTE bank;
UBYTE program;
UBYTE midichan;
UBYTE part;
UBYTE monopoly;
UBYTE keyas;
UBYTE noteshift;
UBYTE detuner;
UBYTE detunef;
UBYTE volume;
UBYTE velsdepth;
UBYTE velsoffset;
UBYTE velihigh;
UBYTE pan;
UBYTE notelihigh;
UBYTE notelilow;
UBYTE dry;
UBYTE chorus;
UBYTE reverb;
UBYTE varfx;
UBYTE vibrate;
UBYTE vibdepth;
UBYTE vibdelay;
UBYTE ficutoffreq;
UBYTE ficutoffreson;
UBYTE attack;
UBYTE decay;
UBYTE release;
UBYTE vxon;
UBYTE tunec;
UBYTE tunecis;
UBYTE tuned;
UBYTE tunedis;
UBYTE tunee;
UBYTE tunef;
UBYTE tunefis;
UBYTE tuneg;
UBYTE tunegis;
UBYTE tunea;
UBYTE tuneais;
UBYTE tuneb;
UBYTE pinilvl;
UBYTE pattack;
UBYTE prellvl;
UBYTE preltim;
UBYTE writesw[720];
UBYTE sliderstorage[720];
char *voicetypsysex;
char *banksysex;
char *programsysex;
char *midichansysex;
char *partsysex;
char *monopolysysex;
char *keyassysex;
char *noteshiftsysex;
char *detunersysex;
char *detunefsysex;
char *volumesysex;
char *velsdepthsysex;
char *velsoffsetsysex;
char *velihighsysex;
char *pansysex;
char *notelihighsysex;
char *notelilowsysex;
char *drysysex;
char *chorussysex;
char *reverbsysex;
char *varfxsysex;
char *vibratesysex;
char *vibdepthsysex;
char *vibdelaysysex;
char *ficutoffreqsysex;
char *ficutoffresonsysex;
char *attacksysex;
char *decaysysex;
char *releasesysex;
char *vxonsysex;
char *tunecsysex;
char *tunecissysex;
char *tunedsysex;
char *tunedissysex;
char *tuneesysex;
char *tunefsysex;
char *tunefissysex;
char *tunegsysex;
char *tunegissysex;
char *tuneasysex;
char *tuneaissysex;
char *tunebsysex;
char *pinilvlsysex;
char *pattacksysex;
char *prellvlsysex;
char *preltimsysex;
};
static struct ToolMaster master;
extern struct Functions *functions;
//initial values
static void MPXG_tool_init(struct MPXGTool *tool)
{
int b;
tool->tool.touched = TOUCH_INIT;
tool->voicetyp = initstorage[0];
tool->bank = initstorage[1];
tool->program = initstorage[2];
tool->midichan = initstorage[3];
tool->part = 0;
tool->monopoly = initstorage[4];
tool->keyas = initstorage[5];
tool->noteshift = initstorage[6];
tool->detuner = initstorage[7];
tool->detunef = initstorage[8];
tool->volume = initstorage[9];
tool->velsdepth = initstorage[10];
tool->velsoffset = initstorage[11];
tool->velihigh = initstorage[12];
tool->pan = initstorage[13];
tool->notelihigh = initstorage[14];
tool->notelilow = initstorage[15];
tool->dry = initstorage[16];
tool->chorus = initstorage[17];
tool->reverb = initstorage[18];
tool->varfx = initstorage[19];
tool->vibrate = initstorage[20];
tool->vibdepth = initstorage[21];
tool->vibdelay = initstorage[22];
tool->ficutoffreq = initstorage[23];
tool->ficutoffreson = initstorage[24];
tool->attack = initstorage[25];
tool->decay = initstorage[26];
tool->release = initstorage[27];
tool->vxon = initstorage[28];
tool->tunec = initstorage[29];
tool->tunecis = initstorage[30];
tool->tuned = initstorage[31];
tool->tunedis = initstorage[32];
tool->tunee = initstorage[33];
tool->tunef = initstorage[34];
tool->tunefis = initstorage[35];
tool->tuneg = initstorage[36];
tool->tunegis = initstorage[37];
tool->tunea = initstorage[38];
tool->tuneais = initstorage[39];
tool->tuneb = initstorage[40];
tool->pinilvl = initstorage[41];
tool->pattack = initstorage[42];
tool->prellvl = initstorage[43];
tool->preltim = initstorage[44];
tool->voicetypsysex = NULL;
tool->banksysex = NULL;
tool->programsysex = NULL;
tool->midichansysex = NULL;
tool->partsysex = NULL;
tool->monopolysysex = NULL;
tool->keyassysex = NULL;
tool->noteshiftsysex = NULL;
tool->detunersysex = NULL;
tool->detunefsysex = NULL;
tool->volumesysex = NULL;
tool->velsdepthsysex = NULL;
tool->velsoffsetsysex = NULL;
tool->velihighsysex = NULL;
tool->pansysex = NULL;
tool->notelihighsysex = NULL;
tool->notelilowsysex = NULL;
tool->drysysex = NULL;
tool->chorussysex = NULL;
tool->reverbsysex = NULL;
tool->varfxsysex = NULL;
tool->vibratesysex = NULL;
tool->vibdepthsysex = NULL;
tool->vibdelaysysex = NULL;
tool->ficutoffreqsysex = NULL;
tool->ficutoffresonsysex = NULL;
tool->attacksysex = NULL;
tool->decaysysex = NULL;
tool->releasesysex = NULL;
tool->vxonsysex = NULL;
tool->tunecsysex = NULL;
tool->tunecissysex = NULL;
tool->tunedsysex = NULL;
tool->tunedissysex = NULL;
tool->tuneesysex = NULL;
tool->tunefsysex = NULL;
tool->tunefissysex = NULL;
tool->tunegsysex = NULL;
tool->tunegissysex = NULL;
tool->tuneasysex = NULL;
tool->tuneaissysex = NULL;
tool->tunebsysex = NULL;
tool->pinilvlsysex = NULL;
tool->pattacksysex = NULL;
tool->prellvlsysex = NULL;
tool->preltimsysex = NULL;
for(b=0; b<720; b++)
{
tool->sliderstorage[b] = initstorage[b];
tool->writesw[b] = 0;
}
}
static struct Event * __saveds processeventcode(struct Event *event)
{
event->tool = event->tool->next;
return(event);
}
static BOOL lock_clip(struct Clip *clip)
{
Forbid();
if (clip->locked == 0)
{
clip->locked = 1;
Permit();
return TRUE;
}
else
{
Permit();
return FALSE;
}
}
static void unlock_clip(struct Clip *clip)
{
clip->locked = 0;
}
//writes sysex into track
static void __saveds insertsysex(char *buff, short size, struct MPXGTool *tool, const LONG time)
{
struct StringEvent *event;
struct String *string;
event = (struct StringEvent *) (*functions->allocevent)();
if (event)
{
string = (struct String *) (*functions->myalloc)(size + 3, MEMF_CLEAR);
if (string)
{
event->next = NULL;
event->string = string;
memcpy(string->string, buff, size);
string->length = size + 2;
event->type = EVENT_SYSX;
event->status = MIDI_SYSX;
event->time = time;
event->tool = tool->tool.next;
if (lock_clip(&(tool->tool.track->clip)))
{
event->next = (struct StringEvent *)tool->tool.track->clip.events.first;
tool->tool.track->clip.events.first = (struct Event *)(*functions->sorteventlist)(event);
unlock_clip(&(tool->tool.track->clip));
}
else
{
(*functions->freelist)(event);
}
}
}
}
// the routine for sending SysEx-data thru the pipeline
static void __saveds sendsysex(char *buff, short size, struct MPXGTool *tool, const LONG time)
{
struct StringEvent *event;
struct String *string;
event = (struct StringEvent *) (*functions->allocevent)();
if (event)
{
string = (struct String *) (*functions->myalloc)(size + 3, MEMF_CLEAR);
if (string)
{
event->string = string;
memcpy(string->string, buff, size);
string->length = size + 2;
event->type = EVENT_SYSX;
event->status = MIDI_SYSX;
event->time = time;
event->tool = tool->tool.next;
WaitTOF();
(*functions->qevent)(event);
(*functions->myfree)(string);
}
}
}
static void __saveds trans_hx(struct MPXGTool *tool, const LONG time, char *sysx, int sw)
{
LONG size;
int a, b, x, y ;
UBYTE abuf[32];
char chr[4];
char *zbuf = NULL;
struct Event *sysx_event;
//translate sysexbuffer into hex
size = strlen(sysx);
zbuf = (char *)AllocVec(size+2, MEMF_ANY|MEMF_CLEAR);
if(zbuf)
{
CopyMem(sysx, zbuf, size);
b=0;
for(a=0;a < size;a=a+2)
{
chr[0] = zbuf[a];
chr[1] = zbuf[a+1];
x=(isdigit((int)chr[0]))? (chr[0]&0xF) : ((chr[0]&0xDF)-55); //this is the
y=(isdigit((int)chr[1]))? (chr[1]&0xF) : ((chr[1]&0xDF)-55); //the translate-core
abuf[b++] = ((x<<4)|y); //writing with bitmanipulation
}
//send hexdata
FreeVec(zbuf);
if (sw == 0) sendsysex(abuf, b, tool, time);
if (sw == 1) insertsysex(abuf, b, tool, time);
}
}
//to put all the sliders to the value, that's stored
void initslider(struct MPXGTool *tool, struct Window *window)
{
int i, b, a = (tool->part)*45;
tool->voicetyp = tool->sliderstorage[0+a];
tool->bank = tool->sliderstorage[1+a];
tool->program = tool->sliderstorage[2+a];
tool->midichan = tool->sliderstorage[3+a];
tool->monopoly = tool->sliderstorage[4+a];
tool->keyas = tool->sliderstorage[5+a];
tool->noteshift = tool->sliderstorage[6+a];
tool->detuner = tool->sliderstorage[7+a];
tool->detunef = tool->sliderstorage[8+a];
tool->volume = tool->sliderstorage[9+a];
tool->velsdepth = tool->sliderstorage[10+a];
tool->velsoffset = tool->sliderstorage[11+a];
tool->velihigh = tool->sliderstorage[12+a];
tool->pan = tool->sliderstorage[13+a];
tool->notelihigh = tool->sliderstorage[14+a];
tool->notelilow = tool->sliderstorage[15+a];
tool->dry = tool->sliderstorage[16+a];
tool->chorus = tool->sliderstorage[17+a];
tool->reverb = tool->sliderstorage[18+a];
tool->varfx = tool->sliderstorage[19+a];
tool->vibrate = tool->sliderstorage[20+a];
tool->vibdepth = tool->sliderstorage[21+a];
tool->vibdelay = tool->sliderstorage[22+a];
tool->ficutoffreq = tool->sliderstorage[23+a];
tool->ficutoffreson = tool->sliderstorage[24+a];
tool->attack = tool->sliderstorage[25+a];
tool->decay = tool->sliderstorage[26+a];
tool->release = tool->sliderstorage[27+a];
tool->vxon = tool->sliderstorage[28+a];
tool->tunec = tool->sliderstorage[29+a];
tool->tunecis = tool->sliderstorage[30+a];
tool->tuned = tool->sliderstorage[31+a];
tool->tunedis = tool->sliderstorage[32+a];
tool->tunee = tool->sliderstorage[33+a];
tool->tunef = tool->sliderstorage[34+a];
tool->tunefis = tool->sliderstorage[35+a];
tool->tuneg = tool->sliderstorage[36+a];
tool->tunegis = tool->sliderstorage[37+a];
tool->tunea = tool->sliderstorage[38+a];
tool->tuneais = tool->sliderstorage[39+a];
tool->tuneb = tool->sliderstorage[40+a];
tool->pinilvl = tool->sliderstorage[41+a];
tool->pattack = tool->sliderstorage[42+a];
tool->prellvl = tool->sliderstorage[43+a];
tool->preltim = tool->sliderstorage[44+a];
(*functions->ModifyEmbossedProp)(window, VOICETYP_GADGET, tool->voicetyp, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, BANK_GADGET, tool->bank, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, PROGRAM_GADGET, tool->program, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, MIDICHAN_GADGET, tool->midichan, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, MONOPOLY_GADGET, tool->monopoly, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, KEYAS_GADGET, tool->keyas, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, NOTESHIFT_GADGET, tool->noteshift, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, DETUNER_GADGET, tool->detuner, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, DETUNEF_GADGET, tool->detunef, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, VOLUME_GADGET, tool->volume, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, VELSDEPTH_GADGET, tool->velsdepth, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, VELSOFFSET_GADGET, tool->velsoffset, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, VELIHIGH_GADGET, tool->velihigh, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, PAN_GADGET, tool->pan, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, NOTELIHIGH_GADGET, tool->notelihigh, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, NOTELILOW_GADGET, tool->notelilow, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, DRY_GADGET, tool->dry, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, CHORUS_GADGET, tool->chorus, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, REVERB_GADGET, tool->reverb, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, VARFX_GADGET, tool->varfx, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, VIBRATE_GADGET, tool->vibrate, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, VIBDEPTH_GADGET, tool->vibdepth, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, VIBDELAY_GADGET, tool->vibdelay, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, FICUTOFFREQ_GADGET, tool->ficutoffreq, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, FICUTOFFRESON_GADGET, tool->ficutoffreson, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, ATTACK_GADGET, tool->attack, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, DECAY_GADGET, tool->decay, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, RELEASE_GADGET, tool->release, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, TUNEC_GADGET, tool->tunec, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, TUNECIS_GADGET, tool->tunecis, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, TUNED_GADGET, tool->tuned, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, TUNEDIS_GADGET, tool->tunedis, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, TUNEE_GADGET, tool->tunee, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, TUNEF_GADGET, tool->tunef, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, TUNEFIS_GADGET, tool->tunefis, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, TUNEG_GADGET, tool->tuneg, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, TUNEGIS_GADGET, tool->tunegis, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, TUNEA_GADGET, tool->tunea, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, TUNEAIS_GADGET, tool->tuneais, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, TUNEB_GADGET, tool->tuneb, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, PINILVL_GADGET, tool->pinilvl, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, PATTACK_GADGET, tool->pattack, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, PRELLVL_GADGET, tool->prellvl, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, PRELTIM_GADGET, tool->preltim, 0, 0, 0, 0, 0);
for (i= VOICETYP_GADGET; i<=RELEASE_GADGET ; i++)
{
(*functions->DrawEmbossedProp)(window, i);
}
(*functions->SelectEmbossed)(window,VXON_GADGET, tool->vxon);
for (i= TUNEC_GADGET; i<=PRELTIM_GADGET ; i++)
{
(*functions->DrawEmbossedProp)(window, i);
}
}
//to put all the sliders to the default values
void defaultslider(struct MPXGTool *tool, struct Window *window)
{
int i, b;
LONG time, a = (tool->part)*45;
char storage1[32];
char storage2[32];
char storage3[32];
char storage4[32];
char storage5[32];
char storage6[32];
char storage7[32];
char storage8[32];
char storage9[32];
char storage10[32];
char storage11[32];
char storage12[32];
char storage13[32];
char storage14[32];
char storage15[32];
char storage16[32];
char storage17[32];
char storage18[32];
char storage19[32];
char storage20[32];
char storage21[32];
char storage22[32];
char storage23[32];
char storage24[32];
char storage25[32];
char storage26[32];
char storage27[32];
char storage28[32];
char storage29[32];
char storage30[32];
char storage31[32];
char storage32[32];
char storage33[32];
char storage34[32];
char storage35[32];
char storage36[32];
char storage37[32];
char storage38[32];
char storage39[32];
char storage40[32];
char storage41[32];
char storage42[32];
char storage43[32];
char storage44[32];
char storage45[32];
tool->sliderstorage[0+a] = initstorage[0+a] =0;
tool->sliderstorage[1+a] = initstorage[1+a] =0;
tool->sliderstorage[2+a] = initstorage[2+a] =0;
tool->sliderstorage[3+a] = initstorage[3+a] =0;
tool->sliderstorage[4+a] = initstorage[4+a] =1;
tool->sliderstorage[5+a] = initstorage[5+a] =1;
tool->sliderstorage[6+a] = initstorage[6+a] =64;
tool->sliderstorage[7+a] = initstorage[7+a] =8;
tool->sliderstorage[8+a] = initstorage[8+a] =0;
tool->sliderstorage[9+a] = initstorage[9+a] =100;
tool->sliderstorage[10+a]= initstorage[10+a]=64;
tool->sliderstorage[11+a]= initstorage[11+a]=64;
tool->sliderstorage[12+a]= initstorage[12+a]=127;
tool->sliderstorage[13+a]= initstorage[13+a]=64;
tool->sliderstorage[14+a]= initstorage[14+a]=127;
tool->sliderstorage[15+a]= initstorage[15+a]=0;
tool->sliderstorage[16+a]= initstorage[16+a]=127;
tool->sliderstorage[17+a]= initstorage[17+a]=0;
tool->sliderstorage[18+a]= initstorage[18+a]=40;
tool->sliderstorage[19+a]= initstorage[19+a]=0;
tool->sliderstorage[20+a]= initstorage[20+a]=64;
tool->sliderstorage[21+a]= initstorage[21+a]=64;
tool->sliderstorage[22+a]= initstorage[22+a]=64;
tool->sliderstorage[23+a]= initstorage[23+a]=64;
tool->sliderstorage[24+a]= initstorage[24+a]=64;
tool->sliderstorage[25+a]= initstorage[25+a]=64;
tool->sliderstorage[26+a]= initstorage[26+a]=64;
tool->sliderstorage[27+a]= initstorage[27+a]=64;
tool->sliderstorage[28+a]= initstorage[28+a]=0;
tool->sliderstorage[29+a]= initstorage[29+a]=64;
tool->sliderstorage[30+a]= initstorage[30+a]=64;
tool->sliderstorage[31+a]= initstorage[31+a]=64;
tool->sliderstorage[32+a]= initstorage[32+a]=64;
tool->sliderstorage[33+a]= initstorage[33+a]=64;
tool->sliderstorage[34+a]= initstorage[34+a]=64;
tool->sliderstorage[35+a]= initstorage[35+a]=64;
tool->sliderstorage[36+a]= initstorage[36+a]=64;
tool->sliderstorage[37+a]= initstorage[37+a]=64;
tool->sliderstorage[38+a]= initstorage[38+a]=64;
tool->sliderstorage[39+a]= initstorage[39+a]=64;
tool->sliderstorage[40+a]= initstorage[40+a]=64;
tool->sliderstorage[41+a]= initstorage[41+a]=64;
tool->sliderstorage[42+a]= initstorage[42+a]=64;
tool->sliderstorage[43+a]= initstorage[43+a]=64;
tool->sliderstorage[44+a]= initstorage[44+a]=64;
tool->voicetyp = initstorage[0+a] ;
tool->bank = initstorage[1+a] ;
tool->program = initstorage[2+a] ;
tool->midichan = initstorage[3+a] ;
tool->monopoly = initstorage[4+a] ;
tool->keyas = initstorage[5+a] ;
tool->noteshift = initstorage[6+a] ;
tool->detuner = initstorage[7+a] ;
tool->detunef = initstorage[8+a] ;
tool->volume = initstorage[9+a] ;
tool->velsdepth = initstorage[10+a];
tool->velsoffset = initstorage[11+a];
tool->velihigh = initstorage[12+a];
tool->pan = initstorage[13+a];
tool->notelihigh = initstorage[14+a];
tool->notelilow = initstorage[15+a];
tool->dry = initstorage[16+a];
tool->chorus = initstorage[17+a];
tool->reverb = initstorage[18+a];
tool->varfx = initstorage[19+a];
tool->vibrate = initstorage[20+a];
tool->vibdepth = initstorage[21+a];
tool->vibdelay = initstorage[22+a];
tool->ficutoffreq = initstorage[23+a];
tool->ficutoffreson = initstorage[24+a];
tool->attack = initstorage[25+a];
tool->decay = initstorage[26+a];
tool->release = initstorage[27+a];
tool->vxon = initstorage[28+a];
tool->tunec = initstorage[29+a];
tool->tunecis = initstorage[30+a];
tool->tuned = initstorage[31+a];
tool->tunedis = initstorage[32+a];
tool->tunee = initstorage[33+a];
tool->tunef = initstorage[34+a];
tool->tunefis = initstorage[35+a];
tool->tuneg = initstorage[36+a];
tool->tunegis = initstorage[37+a];
tool->tunea = initstorage[38+a];
tool->tuneais = initstorage[39+a];
tool->tuneb = initstorage[40+a];
tool->pinilvl = initstorage[41+a];
tool->pattack = initstorage[42+a];
tool->prellvl = initstorage[43+a];
tool->preltim = initstorage[44+a];
for (b=0; b<=45; b++)
{tool->writesw[a+b]=0;}
(*functions->ModifyEmbossedProp)(window, VOICETYP_GADGET, tool->voicetyp, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, BANK_GADGET, tool->bank, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, PROGRAM_GADGET, tool->program, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, MIDICHAN_GADGET, tool->midichan, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, MONOPOLY_GADGET, tool->monopoly, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, KEYAS_GADGET, tool->keyas, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, NOTESHIFT_GADGET, tool->noteshift-0x28, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, DETUNER_GADGET, tool->detuner, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, DETUNEF_GADGET, tool->detunef, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, VOLUME_GADGET, tool->volume, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, VELSDEPTH_GADGET, tool->velsdepth, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, VELSOFFSET_GADGET, tool->velsoffset, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, VELIHIGH_GADGET, tool->velihigh, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, PAN_GADGET, tool->pan, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, NOTELIHIGH_GADGET, tool->notelihigh, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, NOTELILOW_GADGET, tool->notelilow, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, DRY_GADGET, tool->dry, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, CHORUS_GADGET, tool->chorus, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, REVERB_GADGET, tool->reverb, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, VARFX_GADGET, tool->varfx, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, VIBRATE_GADGET, tool->vibrate, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, VIBDEPTH_GADGET, tool->vibdepth, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, VIBDELAY_GADGET, tool->vibdelay, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, FICUTOFFREQ_GADGET, tool->ficutoffreq, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, FICUTOFFRESON_GADGET, tool->ficutoffreson, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, ATTACK_GADGET, tool->attack, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, DECAY_GADGET, tool->decay, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, RELEASE_GADGET, tool->release, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, TUNEC_GADGET, tool->tunec, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, TUNECIS_GADGET, tool->tunecis, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, TUNED_GADGET, tool->tuned, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, TUNEDIS_GADGET, tool->tunedis, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, TUNEE_GADGET, tool->tunee, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, TUNEF_GADGET, tool->tunef, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, TUNEFIS_GADGET, tool->tunefis, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, TUNEG_GADGET, tool->tuneg, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, TUNEGIS_GADGET, tool->tunegis, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, TUNEA_GADGET, tool->tunea, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, TUNEAIS_GADGET, tool->tuneais, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, TUNEB_GADGET, tool->tuneb, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, PINILVL_GADGET, tool->pinilvl, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, PATTACK_GADGET, tool->pattack, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, PRELLVL_GADGET, tool->prellvl, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, PRELTIM_GADGET, tool->preltim, 0, 0, 0, 0, 0);
for (i= VOICETYP_GADGET; i<=RELEASE_GADGET ; i++)
{
(*functions->DrawEmbossedProp)(window, i);
}
(*functions->SelectEmbossed)(window,VXON_GADGET, tool->vxon);
for (i= TUNEC_GADGET; i<=PRELTIM_GADGET ; i++)
{
(*functions->DrawEmbossedProp)(window, i);
}
sprintf(storage1, "F043104C08%02lx01%02lxF7",tool->part,tool->voicetyp);
tool->voicetypsysex = storage1;
time = functions->timenow;
trans_hx(tool, time, tool->voicetypsysex, 0);
sprintf(storage2, "F043104C08%02lx02%02lxF7",tool->part,tool->bank);
tool->banksysex = storage2;
time = functions->timenow;
trans_hx(tool, time, tool->banksysex, 0);
sprintf(storage3, "F043104C08%02lx03%02lxF7",tool->part,tool->program);
tool->programsysex = storage3;
time = functions->timenow;
trans_hx(tool, time, tool->programsysex, 0);
sprintf(storage4, "F043104C08%02lx04%02lxF7",tool->part,tool->midichan);
tool->midichansysex = storage4;
time = functions->timenow;
trans_hx(tool, time, tool->midichansysex, 0);
sprintf(storage5, "F043104C08%02lx05%02lxF7",tool->part,tool->monopoly);
tool->monopolysysex = storage5;
time = functions->timenow;
trans_hx(tool, time, tool->monopolysysex, 0);
sprintf(storage6, "F043104C08%02lx06%02lxF7",tool->part,tool->keyas);
tool->keyassysex = storage6;
time = functions->timenow;
trans_hx(tool, time, tool->keyassysex, 0);
sprintf(storage7, "F043104C08%02lx08%02lxF7",tool->part,tool->noteshift);
tool->noteshiftsysex = storage7;
time = functions->timenow;
trans_hx(tool, time, tool->noteshiftsysex, 0);
sprintf(storage8, "F043104C08%02lx09%02lx%02lxF7",tool->part,tool->detuner,tool->detunef);
tool->detunersysex = storage8;
time = functions->timenow;
trans_hx(tool, time, tool->detunersysex, 0);
sprintf(storage9, "F043104C08%02lx09%02lx%02lxF7",tool->part,tool->detuner,tool->detunef);
tool->detunefsysex = storage9;
time = functions->timenow;
trans_hx(tool, time, tool->detunefsysex, 0);
sprintf(storage10, "F043104C08%02lx0B%02lxF7",tool->part,tool->volume);
tool->volumesysex = storage10;
time = functions->timenow;
trans_hx(tool, time, tool->volumesysex, 0);
sprintf(storage11, "F043104C08%02lx0C%02lxF7",tool->part,tool->velsdepth);
tool->velsdepthsysex = storage11;
time = functions->timenow;
trans_hx(tool, time, tool->velsdepthsysex, 0);
sprintf(storage12, "F043104C08%02lx0D%02lxF7",tool->part,tool->velsoffset);
tool->velsoffsetsysex = storage12;
time = functions->timenow;
trans_hx(tool, time, tool->velsoffsetsysex, 0);
sprintf(storage13, "F043104C08%02lx6E%02lxF7",tool->part,tool->velihigh);
tool->velihighsysex = storage13;
time = functions->timenow;
trans_hx(tool, time, tool->velihighsysex, 0);
sprintf(storage14, "F043104C08%02lx0E%02lxF7",tool->part,tool->pan);
tool->pansysex = storage14;
time = functions->timenow;
trans_hx(tool, time, tool->pansysex, 0);
sprintf(storage15, "F043104C08%02lx10%02lxF7",tool->part,tool->notelihigh);
tool->notelihighsysex = storage15;
time = functions->timenow;
trans_hx(tool, time, tool->notelihighsysex, 0);
sprintf(storage16, "F043104C08%02lx0F%02lxF7",tool->part,tool->notelilow);
tool->notelilowsysex = storage16;
time = functions->timenow;
trans_hx(tool, time, tool->notelilowsysex, 0);
sprintf(storage17, "F043104C08%02lx11%02lxF7",tool->part,tool->dry);
tool->drysysex = storage17;
time = functions->timenow;
trans_hx(tool, time, tool->drysysex, 0);
sprintf(storage18, "F043104C08%02lx12%02lxF7",tool->part,tool->chorus);
tool->chorussysex = storage18;
time = functions->timenow;
trans_hx(tool, time, tool->chorussysex, 0);
sprintf(storage19, "F043104C08%02lx13%02lxF7",tool->part,tool->reverb);
tool->reverbsysex = storage19;
time = functions->timenow;
trans_hx(tool, time, tool->reverbsysex, 0);
sprintf(storage20, "F043104C08%02lx14%02lxF7",tool->part,tool->varfx);
tool->varfxsysex = storage20;
time = functions->timenow;
trans_hx(tool, time, tool->varfxsysex, 0);
sprintf(storage21, "F043104C08%02lx15%02lxF7",tool->part,tool->vibrate);
tool->vibratesysex = storage21;
time = functions->timenow;
trans_hx(tool, time, tool->vibratesysex, 0);
sprintf(storage22, "F043104C08%02lx16%02lxF7",tool->part,tool->vibdepth);
tool->vibdepthsysex = storage22;
time = functions->timenow;
trans_hx(tool, time, tool->vibdepthsysex, 0);
sprintf(storage23, "F043104C08%02lx17%02lxF7",tool->part,tool->vibdelay);
tool->vibdelaysysex = storage23;
time = functions->timenow;
trans_hx(tool, time, tool->vibdelaysysex, 0);
sprintf(storage24, "F043104C08%02lx18%02lxF7",tool->part,tool->ficutoffreq);
tool->ficutoffreqsysex = storage24;
time = functions->timenow;
trans_hx(tool, time, tool->ficutoffreqsysex, 0);
sprintf(storage25, "F043104C08%02lx19%02lxF7",tool->part,tool->ficutoffreson);
tool->ficutoffresonsysex = storage25;
time = functions->timenow;
trans_hx(tool, time, tool->ficutoffresonsysex, 0);
sprintf(storage26, "F043104C08%02lx1A%02lxF7",tool->part,tool->attack);
tool->attacksysex = storage26;
time = functions->timenow;
trans_hx(tool, time, tool->attacksysex, 0);
sprintf(storage27, "F043104C08%02lx1B%02lxF7",tool->part,tool->decay);
tool->decaysysex = storage27;
time = functions->timenow;
trans_hx(tool, time, tool->decaysysex, 0);
sprintf(storage28, "F043104C08%02lx1C%02lxF7",tool->part,tool->release);
tool->releasesysex = storage28;
time = functions->timenow;
trans_hx(tool, time, tool->releasesysex, 0);
sprintf(storage29, "F043104C02015A%02lxF7",tool->vxon);
tool->vxonsysex = storage29;
time = functions->timenow;
trans_hx(tool, time, tool->vxonsysex, 0);
sprintf(storage30, "F043104C08%02lx41%02lxF7",tool->part,tool->tunec);
tool->tunecsysex = storage30;
time = functions->timenow;
trans_hx(tool, time, tool->tunecsysex, 0);
sprintf(storage31, "F043104C08%02lx42%02lxF7",tool->part,tool->tunecis);
tool->tunecissysex = storage31;
time = functions->timenow;
trans_hx(tool, time, tool->tunecissysex, 0);
sprintf(storage32, "F043104C08%02lx43%02lxF7",tool->part,tool->tuned);
tool->tunedsysex = storage32;
time = functions->timenow;
trans_hx(tool, time, tool->tunedsysex, 0);
sprintf(storage33, "F043104C08%02lx44%02lxF7",tool->part,tool->tunedis);
tool->tunedissysex = storage33;
time = functions->timenow;
trans_hx(tool, time, tool->tunedissysex, 0);
sprintf(storage34, "F043104C08%02lx45%02lxF7",tool->part,tool->tunee);
tool->tuneesysex = storage34;
time = functions->timenow;
trans_hx(tool, time, tool->tuneesysex, 0);
sprintf(storage35, "F043104C08%02lx46%02lxF7",tool->part,tool->tunef);
tool->tunefsysex = storage35;
time = functions->timenow;
trans_hx(tool, time, tool->tunefsysex, 0);
sprintf(storage36, "F043104C08%02lx47%02lxF7",tool->part,tool->tunefis);
tool->tunefissysex = storage36;
time = functions->timenow;
trans_hx(tool, time, tool->tunefissysex, 0);
sprintf(storage37, "F043104C08%02lx48%02lxF7",tool->part,tool->tuneg);
tool->tunegsysex = storage37;
time = functions->timenow;
trans_hx(tool, time, tool->tunegsysex, 0);
sprintf(storage38, "F043104C08%02lx49%02lxF7",tool->part,tool->tunegis);
tool->tunegissysex = storage38;
time = functions->timenow;
trans_hx(tool, time, tool->tunegissysex, 0);
sprintf(storage39, "F043104C08%02lx4A%02lxF7",tool->part,tool->tunea);
tool->tuneasysex = storage39;
time = functions->timenow;
trans_hx(tool, time, tool->tuneasysex, 0);
sprintf(storage40, "F043104C08%02lx4B%02lxF7",tool->part,tool->tuneais);
tool->tuneaissysex = storage40;
time = functions->timenow;
trans_hx(tool, time, tool->tuneaissysex, 0);
sprintf(storage41, "F043104C08%02lx4C%02lxF7",tool->part,tool->tuneb);
tool->tunebsysex = storage41;
time = functions->timenow;
trans_hx(tool, time, tool->tunebsysex, 0);
sprintf(storage42, "F043104C08%02lx69%02lxF7",tool->part,tool->pinilvl);
tool->pinilvlsysex = storage42;
time = functions->timenow;
trans_hx(tool, time, tool->pinilvlsysex, 0);
sprintf(storage43, "F043104C08%02lx6A%02lxF7",tool->part,tool->pattack);
tool->pattacksysex = storage43;
time = functions->timenow;
trans_hx(tool, time, tool->pattacksysex, 0);
sprintf(storage44, "F043104C08%02lx6B%02lxF7",tool->part,tool->prellvl);
tool->prellvlsysex = storage44;
time = functions->timenow;
trans_hx(tool, time, tool->prellvlsysex, 0);
sprintf(storage45, "F043104C08%02lx6C%02lxF7",tool->part,tool->preltim);
tool->preltimsysex = storage45;
time = functions->timenow;
trans_hx(tool, time, tool->preltimsysex, 0);
}
// Writes all values of the sliders and more in the main window
LONG __saveds display_routine(struct Window *window, struct Gadget *gadget, ULONG value)
{
char text[10];
char tname[32];
char P01text[4];
char varfx01text[4];
const short id = gadget->GadgetID;
struct RastPort *rp = window->RPort;
char name[15];
int i=0;
UBYTE swi;
UBYTE sw[]={
0, 1,42, 2,42,42,42,42,42,42,
42,42,42,42,42,42, 3,42,42,42,
42,42,42,42,42,42,42,42,42,42,
42,42, 4, 5, 6, 7, 8, 9,42,42,
42,42,42,42,42,42,42,42,10,11,
12,42,42,42,13,14,42,42,42,42,
42,42,42,42,15,16,17,18,19,20,
21,42,42,42,42,42,42,42,42,42,
22,23,24,25,26,27,28,29,30,31,
32,42,42,42,42,42,33,34,35,36,
37,42,42,42,42,42,42,42,42,42,
42,42,38,39,40,41,42,42,42,42,
42,42,42,42,42,42,42,42};
char sfxvoice[43][11]=
{
"CuttngNoic1", "CuttngNoic2", "String Slap", "FluteKClick", "Rain ",
"Thunder ", "Wind ", "Stream ", "Bubble ", "Feed ",
"Dog ", "Horse ", "Bird 2 ", "Ghost ", "Maou ",
"TelephnDial", "Door Squeak", "Door Slam ", "Scratch 1 ", "Scratch 2 ",
"Wind Chime ", "Telephon 2 ", "Car Engine ", "Car Stop ", "Car Pass ",
"Car Crash ", "Siren ", "Train ", "Jetplain ", "Starship ",
"Burst ", "Coaster ", "Sub Marine ", "Laughing ", "Scream ",
"Punch ", "Heart ", "Food Step ", "Machine Gun", "Laser Gun ",
"Explosion ", "Fire Work ", " «empty» "
};
char noteli[128][4]={
" C-2","C#-2"," D-2","D#-2"," E-2"," F-2","F#-2"," G-2","G#-2"," A-2","A#-2"," B-2",
" C-1","C#-1"," D-1","D#-1"," E-1"," F-1","F#-1"," G-1","G#-1"," A-1","A#-1"," B-1",
" C0"," C#0"," D0"," D#0"," E0"," F0"," F#0"," G0"," G#0"," A0"," A#0"," B0",
" C1"," C#1"," D1"," D#1"," E1"," F1"," F#1"," G1"," G#1"," A1"," A#1"," B1",
" C2"," C#2"," D2"," D#2"," E2"," F2"," F#2"," G2"," G#2"," A2"," A#2"," B2",
" C3"," C#3"," D3"," D#3"," E3"," F3"," F#3"," G3"," G#3"," A3"," A#3"," B3",
" C4"," C#4"," D4"," D#4"," E4"," F4"," F#4"," G4"," G#4"," A4"," A#4"," B4",
" C5"," C#5"," D5"," D#5"," E5"," F5"," F#5"," G5"," G#5"," A5"," A#5"," B5",
" C6"," C#6"," D6"," D#6"," E6"," F6"," F#6"," G6"," G#6"," A6"," A#6"," B6",
" C7"," C#7"," D7"," D#7"," E7"," F7"," F#7"," G7"," G#7"," A7"," A#7"," B7",
" C8"," C#8"," D8"," D#8"," E8"," F8"," F#8"," G8"};
char voicetyp[2][8]={"NormalVc","SFXVoice"};
char mopo[2][4]={"Mono","Poly"};
char keas[3][6]={"Single","Multi ","Inst "};
char vxon[2][3]={"off","on "};
UBYTE voty[2] ={0,64};
SetAPen(rp, 6);
SetBPen(rp, 0);
SetDrMd(rp, JAM2);
switch (id)
{
case VOICETYP_GADGET:
Move(rp, 51, 35);
sprintf(text, "%.8s", voicetyp[value]);
Text(rp, text, 8);
value = voty[value];
if (value == 0) votyres = 0;
if (value == 64) votyres = 1;
break;
case BANK_GADGET:
banknr = bnk[value];
sprintf(text, "%3ld", banknr);
Move(rp, 216, 58);
Text(rp, text, 3);
break;
case PROGRAM_GADGET:
prgrm = value;
Move(rp, 216, 68);
sprintf(text, "%3ld", prgrm);
Text(rp, text, 3);
break;
case MIDICHAN_GADGET:
Move(rp, 224, 23);
sprintf(text, "%2ld", value+1);
Text(rp, text, 2);
break;
case PART_GADGET:
Move(rp, 106, 23);
sprintf(text, "%2ld", value+1);
Text(rp, text, 2);
break;
case MONOPOLY_GADGET:
Move(rp, 143, 35);
sprintf(text, "%.4s", mopo[value]);
Text(rp, text, 4);
break;
case KEYAS_GADGET:
Move(rp, 200, 35);
sprintf(text, "%.6s", keas[value]);
Text(rp, text, 6);
break;
case NOTESHIFT_GADGET:
Move(rp, 216, 77);
sprintf(text, "%3ld", value + 0x28);
value = value + 0x28;
Text(rp, text, 3);
break;
case DETUNER_GADGET:
Move(rp, 100, 87);
sprintf(text, "%2ld", value);
Text(rp, text, 2);
break;
case DETUNEF_GADGET:
Move(rp, 216, 87);
sprintf(text, "%3ld", value);
Text(rp, text, 3);
break;
case VOLUME_GADGET:
Move(rp, 216, 97);
sprintf(text, "%3ld", value);
Text(rp, text, 3);
break;
case VELSDEPTH_GADGET:
Move(rp, 216, 107);
sprintf(text, "%3ld", value);
Text(rp, text, 3);
break;
case VELSOFFSET_GADGET:
Move(rp, 216, 117);
sprintf(text, "%3ld", value);
Text(rp, text, 3);
break;
case VELIHIGH_GADGET:
Move(rp, 216, 127);
sprintf(text, "%3ld", value);
Text(rp, text, 3);
break;
case PAN_GADGET:
Move(rp, 216, 137);
sprintf(text, "%3ld", value);
Text(rp, text, 3);
break;
case NOTELIHIGH_GADGET:
Move(rp, 208, 147);
sprintf(text, "%.4s", noteli[value]);
Text(rp, text, 4);
break;
case NOTELILOW_GADGET:
Move(rp, 208, 157);
sprintf(text, "%.4s", noteli[value]);
Text(rp, text, 4);
break;
case DRY_GADGET:
Move(rp, 216, 167);
sprintf(text, "%3ld", value);
Text(rp, text, 3);
break;
case CHORUS_GADGET:
Move(rp, 216, 177);
sprintf(text, "%3ld", value);
Text(rp, text, 3);
break;
case REVERB_GADGET:
Move(rp, 216, 187);
sprintf(text, "%3ld", value);
Text(rp, text, 3);
break;
case VARFX_GADGET:
Move(rp, 216, 197);
sprintf(text, "%3ld", value);
Text(rp, text, 3);
break;
case VIBRATE_GADGET:
Move(rp, 216, 207);
sprintf(text, "%3ld", value);
Text(rp, text, 3);
break;
case VIBDEPTH_GADGET:
Move(rp, 216, 217);
sprintf(text, "%3ld", value);
Text(rp, text, 3);
break;
case VIBDELAY_GADGET:
Move(rp, 216, 227);
sprintf(text, "%3ld", value);
Text(rp, text, 3);
break;
case FICUTOFFREQ_GADGET:
Move(rp, 216, 237);
sprintf(text, "%3ld", value);
Text(rp, text, 3);
break;
case FICUTOFFRESON_GADGET:
Move(rp, 216, 247);
sprintf(text, "%3ld", value);
Text(rp, text, 3);
break;
case ATTACK_GADGET:
Move(rp, 460, 56);
sprintf(text, "%3ld", value);
Text(rp, text, 3);
break;
case DECAY_GADGET:
Move(rp, 460, 66);
sprintf(text, "%3ld", value);
Text(rp, text, 3);
break;
case RELEASE_GADGET:
Move(rp, 460, 76);
sprintf(text, "%3ld", value);
Text(rp, text, 3);
break;
case VXON_GADGET:
Move(rp, 388, 67);
sprintf(text, "%.3s", vxon[value]);
Text(rp, text, 3);
break;
case TUNEC_GADGET:
Move(rp, 460, 137);
sprintf(text, "%3ld", value);
Text(rp, text, 3);
break;
case TUNECIS_GADGET:
Move(rp, 460, 147);
sprintf(text, "%3ld", value);
Text(rp, text, 3);
break;
case TUNED_GADGET:
Move(rp, 460, 157);
sprintf(text, "%3ld", value);
Text(rp, text, 3);
break;
case TUNEDIS_GADGET:
Move(rp, 460, 167);
sprintf(text, "%3ld", value);
Text(rp, text, 3);
break;
case TUNEE_GADGET:
Move(rp, 460, 177);
sprintf(text, "%3ld", value);
Text(rp, text, 3);
break;
case TUNEF_GADGET:
Move(rp, 460, 187);
sprintf(text, "%3ld", value);
Text(rp, text, 3);
break;
case TUNEFIS_GADGET:
Move(rp, 460, 197);
sprintf(text, "%3ld", value);
Text(rp, text, 3);
break;
case TUNEG_GADGET:
Move(rp, 460, 207);
sprintf(text, "%3ld", value);
Text(rp, text, 3);
break;
case TUNEGIS_GADGET:
Move(rp, 460, 217);
sprintf(text, "%3ld", value);
Text(rp, text, 3);
break;
case TUNEA_GADGET:
Move(rp, 460, 227);
sprintf(text, "%3ld", value);
Text(rp, text, 3);
break;
case TUNEAIS_GADGET:
Move(rp, 460, 237);
sprintf(text, "%3ld", value);
Text(rp, text, 3);
break;
case TUNEB_GADGET:
Move(rp, 460, 247);
sprintf(text, "%3ld", value);
Text(rp, text, 3);
break;
case PINILVL_GADGET:
Move(rp, 460, 86);
sprintf(text, "%3ld", value);
Text(rp, text, 3);
break;
case PATTACK_GADGET:
Move(rp, 460, 96);
sprintf(text, "%3ld", value);
Text(rp, text, 3);
break;
case PRELLVL_GADGET:
Move(rp, 460, 106);
sprintf(text, "%3ld", value);
Text(rp, text, 3);
break;
case PRELTIM_GADGET:
Move(rp, 460, 116);
sprintf(text, "%3ld", value);
Text(rp, text, 3);
break;
default:
break;
}
if (votyres == 0)
{
sprintf(tname, "Name:%15.15s", (matrix[banknr * MAX_PROGRAMS+prgrm])?
(char *)matrix[banknr * MAX_PROGRAMS+prgrm]:(char *)EMPTY);
SetAPen(rp, 4);
SetBPen(rp, 7);
SetDrMd(rp, INVERSVID|JAM2);
Move(rp, 46, 47);
Text(rp, tname, strlen(tname));
}
if (votyres == 1)
{
swi = sw[prgrm];
sprintf(tname, "Name:%.11s ", sfxvoice[swi] );
SetAPen(rp, 4);
SetBPen(rp, 7);
SetDrMd(rp, INVERSVID|JAM2);
Move(rp, 46, 47);
Text(rp, tname, 20);
}
return (value);
}
//to hear the changes
static void send_note(struct MPXGTool *tool, const long time, const UBYTE note)
{
struct NoteEvent *on_event = (struct NoteEvent *)(*functions->allocevent)();
if (on_event)
{
struct NoteEvent *off_event = (struct NoteEvent *)(*functions->allocevent)();
if (off_event)
{
on_event->next =
off_event->next = NULL;
on_event->type =
off_event->type = EVENT_VOICE;
on_event->status = MIDI_NOTEON;
off_event->status = MIDI_NOTEOFF;
on_event->value =
off_event->value = note;
on_event->velocity = 80;
on_event->time = time;
off_event->time = time + 96;
on_event->tool =
off_event->tool = tool->tool.next;
(*functions->qevent)(on_event);
(*functions->qevent)(off_event);
}
else
{
(*functions->freeevent)(on_event);
}
}
}
//the center off all
static void __saveds edittoolcode(struct MPXGTool *tool)
{
struct IntuiMessage *message;
struct Window *window;
LONG class, code, time;
struct Gadget *gadget;
struct NewWindow *newwindow;
int i, b, c, a, revres=0;
UBYTE bankval;
char *revtypebt;
char revtypebyte[11][4] ={
"0100", "0101", "0202", "0201", "0202", "0300", "0301", "0400", "1000", "1100", "1300"};
char storage1[32];
char storage2[32];
char storage3[32];
char storage4[32];
char storage5[32];
char storage6[32];
char storage7[32];
char storage8[32];
char storage9[32];
char storage10[32];
char storage11[32];
char storage12[32];
char storage13[32];
char storage14[32];
char storage15[32];
char storage16[32];
char storage17[32];
char storage18[32];
char storage19[32];
char storage20[32];
char storage21[32];
char storage22[32];
char storage23[32];
char storage24[32];
char storage25[32];
char storage26[32];
char storage27[32];
char storage28[32];
char storage29[32];
char storage30[32];
char storage31[32];
char storage32[32];
char storage33[32];
char storage34[32];
char storage35[32];
char storage36[32];
char storage37[32];
char storage38[32];
char storage39[32];
char storage40[32];
char storage41[32];
char storage42[32];
char storage43[32];
char storage44[32];
char storage45[32];
MPXGNewWindowStructure1.Screen = functions->screen;
if (tool->tool.touched & TOUCH_EDIT)
{
MPXGNewWindowStructure1.LeftEdge = tool->tool.left;
MPXGNewWindowStructure1.TopEdge = tool->tool.top;
MPXGNewWindowStructure1.Width = tool->tool.width;
MPXGNewWindowStructure1.Height = tool->tool.height;
}
if (!tool->tool.touched)
{
MPXG_tool_init(tool);
}
newwindow = (struct NewWindow *) (*functions->DupeNewWindow)(&MPXGNewWindowStructure1);
if (!newwindow)
{
return;
}
newwindow->Title = 0;
newwindow->Flags |= BORDERLESS;
newwindow->Flags &= ~0xF;
newwindow->BlockPen = 0;
newwindow->DetailPen = 0;
window = (struct Window *) (*functions->FlashyOpenWindow)(newwindow);
if (!window)
{
return;
}
tool->tool.window = window;
(*functions->EmbossWindowOn)(window, WINDOWCLOSE|WINDOWDEPTH|WINDOWDRAG, MPXG_NAME, (short)-1, (short)-1, 0, 0);
(*functions->EmbossedPropOn)(window, VOICETYP_GADGET, (void *)display_routine, 2, 0);
(*functions->EmbossedPropOn)(window, MIDICHAN_GADGET, (void *)display_routine, 16, 0);
(*functions->EmbossedPropOn)(window, PART_GADGET, (void *)display_routine, 16, 0);
(*functions->EmbossedPropOn)(window, MONOPOLY_GADGET, (void *)display_routine, 2, 0);
(*functions->EmbossedPropOn)(window, PROGRAM_GADGET, (void *)display_routine, 128, 0);
(*functions->EmbossedPropOn)(window, BANK_GADGET, (void *)display_routine, 43, 0);
(*functions->EmbossedPropOn)(window, KEYAS_GADGET, (void *)display_routine, 3, 0);
(*functions->EmbossedPropOn)(window, NOTESHIFT_GADGET, (void *)display_routine, 49, 0);
(*functions->EmbossedPropOn)(window, DETUNER_GADGET, (void *)display_routine, 16, 0);
(*functions->EmbossedPropOn)(window, DETUNEF_GADGET, (void *)display_routine, 255, 0);
for (i = VOLUME_GADGET; i <= RELEASE_GADGET; i++)
{
(*functions->EmbossedPropOn)(window, i, (void *)display_routine, 128, 0);
}
(*functions->EmbossOn)(window, VXON_GADGET, 1);
for (i = TUNEC_GADGET; i <= PRELTIM_GADGET; i++)
{
(*functions->EmbossedPropOn)(window, i, (void *)display_routine, 128, 0);
}
(*functions->EmbossOn)(window, WRITE_GADGET, 1);
(*functions->EmbossOn)(window, DEFAULT_GADGET, 1);
(*functions->ModifyEmbossedProp)(window, VOICETYP_GADGET, tool->voicetyp, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, BANK_GADGET, tool->bank, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, PROGRAM_GADGET, tool->program, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, MIDICHAN_GADGET, tool->midichan, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, PART_GADGET, tool->part, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, MONOPOLY_GADGET, tool->monopoly, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, KEYAS_GADGET, tool->keyas, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, NOTESHIFT_GADGET, tool->noteshift, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, DETUNER_GADGET, tool->detuner, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, DETUNEF_GADGET, tool->detunef, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, VOLUME_GADGET, tool->volume, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, VELSDEPTH_GADGET, tool->velsdepth, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, VELSOFFSET_GADGET, tool->velsoffset, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, VELIHIGH_GADGET, tool->velihigh, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, PAN_GADGET, tool->pan, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, NOTELIHIGH_GADGET, tool->notelihigh, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, NOTELILOW_GADGET, tool->notelilow, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, DRY_GADGET, tool->dry, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, CHORUS_GADGET, tool->chorus, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, REVERB_GADGET, tool->reverb, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, VARFX_GADGET, tool->varfx, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, VIBRATE_GADGET, tool->vibrate, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, VIBDEPTH_GADGET, tool->vibdepth, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, VIBDELAY_GADGET, tool->vibdelay, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, FICUTOFFREQ_GADGET, tool->ficutoffreq, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, FICUTOFFRESON_GADGET, tool->ficutoffreson, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, ATTACK_GADGET, tool->attack, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, DECAY_GADGET, tool->decay, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, RELEASE_GADGET, tool->release, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, TUNEC_GADGET, tool->tunec, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, TUNECIS_GADGET, tool->tunecis, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, TUNED_GADGET, tool->tuned, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, TUNEDIS_GADGET, tool->tunedis, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, TUNEE_GADGET, tool->tunee, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, TUNEF_GADGET, tool->tunef, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, TUNEFIS_GADGET, tool->tunefis, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, TUNEG_GADGET, tool->tuneg, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, TUNEGIS_GADGET, tool->tunegis, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, TUNEA_GADGET, tool->tunea, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, TUNEAIS_GADGET, tool->tuneais, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, TUNEB_GADGET, tool->tuneb, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, PINILVL_GADGET, tool->pinilvl, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, PATTACK_GADGET, tool->pattack, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, PRELLVL_GADGET, tool->prellvl, 0, 0, 0, 0, 0);
(*functions->ModifyEmbossedProp)(window, PRELTIM_GADGET, tool->preltim, 0, 0, 0, 0, 0);
for (i= VOICETYP_GADGET; i<=RELEASE_GADGET ; i++)
{
(*functions->DrawEmbossedProp)(window, i);
}
(*functions->SelectEmbossed)(window,VXON_GADGET, tool->vxon);
for (i= TUNEC_GADGET; i<=PRELTIM_GADGET ; i++)
{
(*functions->DrawEmbossedProp)(window, i);
}
send_note(tool, functions->timenow, 60);
for (;;)
{
message = (struct IntuiMessage *) (*functions->GetIntuiMessage)(window);
class = message->Class;
code = message->Code;
gadget = (struct Gadget *) message->IAddress;
class = (*functions->SystemGadgets)(window, class, gadget, code);
ReplyMsg((struct Message *)message);
if (class == CLOSEWINDOW)
{
break;
}
else if (class == GADGETDOWN)
{
const short id = gadget->GadgetID;
a = (tool->part)*45;
switch (id)
{
case VOICETYP_GADGET:
tool->voicetyp = (UBYTE) (*functions->DragEmbossedProp)(window, VOICETYP_GADGET);
tool->sliderstorage[0+a] = tool->voicetyp;
tool->writesw[0+a] = 1;
sprintf(storage1, "F043104C08%02lx01%02lxF7",tool->part,tool->voicetyp);
tool->voicetypsysex = storage1;
time = functions->timenow;
trans_hx(tool, time, tool->voicetypsysex, 0);
sprintf(storage3, "F043104C08%02lx03%02lxF7",tool->part,tool->program);
tool->programsysex = storage3;
time = functions->timenow;
trans_hx(tool, time, tool->programsysex, 0);
send_note(tool, functions->timenow, 60);
break;
case BANK_GADGET:
tool->bank = (UBYTE) (*functions->DragEmbossedProp)(window, BANK_GADGET);
tool->sliderstorage[1+a] = tool->bank;
tool->writesw[1+a] = 1;
sprintf(storage2, "F043104C08%02lx02%02lxF7",tool->part,bnk[tool->bank]);
tool->banksysex = storage2;
time = functions->timenow;
trans_hx(tool, time, tool->banksysex, 0);
sprintf(storage3, "F043104C08%02lx03%02lxF7",tool->part,tool->program);
tool->programsysex = storage3;
time = functions->timenow;
trans_hx(tool, time, tool->programsysex, 0);
send_note(tool, functions->timenow, 60);
break;
case PROGRAM_GADGET:
tool->program = (UBYTE) (*functions->DragEmbossedProp)(window, PROGRAM_GADGET);
tool->sliderstorage[2+a] = tool->program;
tool->writesw[2+a] = 1;
sprintf(storage3, "F043104C08%02lx03%02lxF7",tool->part,tool->program);
tool->programsysex = storage3;
time = functions->timenow;
trans_hx(tool, time, tool->programsysex, 0);
send_note(tool, functions->timenow, 60);
break;
case MIDICHAN_GADGET:
tool->midichan = (UBYTE) (*functions->DragEmbossedProp)(window, MIDICHAN_GADGET);
tool->sliderstorage[3+a] = tool->midichan;
tool->writesw[3+a] = 1;
sprintf(storage4, "F043104C08%02lx04%02lxF7",tool->part,tool->midichan);
tool->midichansysex = storage4;
time = functions->timenow;
trans_hx(tool, time, tool->midichansysex, 0);
send_note(tool, functions->timenow, 60);
break;
case PART_GADGET:
tool->part = (UBYTE) (*functions->DragEmbossedProp)(window, PART_GADGET);
initslider(tool, window);
send_note(tool, functions->timenow, 60);
break;
case MONOPOLY_GADGET:
tool->monopoly = (UBYTE) (*functions->DragEmbossedProp)(window, MONOPOLY_GADGET);
tool->sliderstorage[4+a] = tool->monopoly;
tool->writesw[4+a] = 1;
sprintf(storage5, "F043104C08%02lx05%02lxF7",tool->part,tool->monopoly);
tool->monopolysysex = storage5;
time = functions->timenow;
trans_hx(tool, time, tool->monopolysysex, 0);
send_note(tool, functions->timenow, 60);
break;
case KEYAS_GADGET:
tool->keyas = (UBYTE) (*functions->DragEmbossedProp)(window, KEYAS_GADGET);
tool->sliderstorage[5+a] = tool->keyas;
tool->writesw[5+a] = 1;
sprintf(storage6, "F043104C08%02lx06%02lxF7",tool->part,tool->keyas);
tool->keyassysex = storage6;
time = functions->timenow;
trans_hx(tool, time, tool->keyassysex, 0);
send_note(tool, functions->timenow, 60);
break;
case NOTESHIFT_GADGET:
tool->noteshift = (UBYTE) (*functions->DragEmbossedProp)(window, NOTESHIFT_GADGET);
tool->sliderstorage[6+a] = tool->noteshift;
tool->writesw[6+a] = 1;
sprintf(storage7, "F043104C08%02lx08%02lxF7",tool->part,tool->noteshift);
tool->noteshiftsysex = storage7;
time = functions->timenow;
trans_hx(tool, time, tool->noteshiftsysex, 0);
send_note(tool, functions->timenow, 60);
break;
case DETUNER_GADGET:
tool->detuner = (UBYTE) (*functions->DragEmbossedProp)(window, DETUNER_GADGET);
tool->sliderstorage[7+a] = tool->detuner;
tool->writesw[7+a] = 1;
sprintf(storage8, "F043104C08%02lx09%02lx%02lxF7",tool->part,tool->detuner,tool->detunef);
tool->detunersysex = storage8;
time = functions->timenow;
trans_hx(tool, time, tool->detunersysex, 0);
send_note(tool, functions->timenow, 60);
break;
case DETUNEF_GADGET:
tool->detunef = (UBYTE) (*functions->DragEmbossedProp)(window, DETUNEF_GADGET);
tool->sliderstorage[8+a] = tool->detunef;
tool->writesw[8+a] = 1;
sprintf(storage9, "F043104C08%02lx09%02lx%02lxF7",tool->part,tool->detuner,tool->detunef);
tool->detunefsysex = storage9;
time = functions->timenow;
trans_hx(tool, time, tool->detunefsysex, 0);
send_note(tool, functions->timenow, 60);
break;
case VOLUME_GADGET:
tool->volume = (UBYTE) (*functions->DragEmbossedProp)(window, VOLUME_GADGET);
tool->sliderstorage[9+a] = tool->volume;
tool->writesw[9+a] = 1;
sprintf(storage10, "F043104C08%02lx0B%02lxF7",tool->part,tool->volume);
tool->volumesysex = storage10;
time = functions->timenow;
trans_hx(tool, time, tool->volumesysex, 0);
send_note(tool, functions->timenow, 60);
break;
case VELSDEPTH_GADGET:
tool->velsdepth = (UBYTE) (*functions->DragEmbossedProp)(window, VELSDEPTH_GADGET);
tool->sliderstorage[10+a] = tool->velsdepth;
tool->writesw[10+a] = 1;
sprintf(storage11, "F043104C08%02lx0C%02lxF7",tool->part,tool->velsdepth);
tool->velsdepthsysex = storage11;
time = functions->timenow;
trans_hx(tool, time, tool->velsdepthsysex, 0);
send_note(tool, functions->timenow, 60);
break;
case VELSOFFSET_GADGET:
tool->velsoffset = (UBYTE) (*functions->DragEmbossedProp)(window, VELSOFFSET_GADGET);
tool->sliderstorage[11+a] = tool->velsoffset;
tool->writesw[11+a] = 1;
sprintf(storage12, "F043104C08%02lx0D%02lxF7",tool->part,tool->velsoffset);
tool->velsoffsetsysex = storage12;
time = functions->timenow;
trans_hx(tool, time, tool->velsoffsetsysex, 0);
send_note(tool, functions->timenow, 60);
break;
case VELIHIGH_GADGET:
tool->velihigh = (UBYTE) (*functions->DragEmbossedProp)(window, VELIHIGH_GADGET);
tool->sliderstorage[12+a] = tool->velihigh;
tool->writesw[12+a] = 1;
sprintf(storage13, "F043104C08%02lx6E%02lxF7",tool->part,tool->velihigh);
tool->velihighsysex = storage13;
time = functions->timenow;
trans_hx(tool, time, tool->velihighsysex, 0);
send_note(tool, functions->timenow, 60);
break;
case PAN_GADGET:
tool->pan = (UBYTE) (*functions->DragEmbossedProp)(window, PAN_GADGET);
tool->sliderstorage[13+a] = tool->pan;
tool->writesw[13+a] = 1;
sprintf(storage14, "F043104C08%02lx0E%02lxF7",tool->part,tool->pan);
tool->pansysex = storage14;
time = functions->timenow;
trans_hx(tool, time, tool->pansysex, 0);
send_note(tool, functions->timenow, 60);
break;
case NOTELIHIGH_GADGET:
tool->notelihigh = (UBYTE) (*functions->DragEmbossedProp)(window, NOTELIHIGH_GADGET);
if (tool->notelihigh < tool->notelilow)
{
tool->notelihigh = tool->notelilow;
(*functions->ModifyEmbossedProp)(window, NOTELIHIGH_GADGET, tool->notelihigh, 0, 0, 0, 0, 0);
(*functions->DrawEmbossedProp)(window, NOTELIHIGH_GADGET);
}
tool->sliderstorage[14+a] = tool->notelihigh;
tool->writesw[14+a] = 1;
sprintf(storage15, "F043104C08%02lx10%02lxF7",tool->part,tool->notelihigh);
tool->notelihighsysex = storage15;
time = functions->timenow;
trans_hx(tool, time, tool->notelihighsysex, 0);
send_note(tool, functions->timenow, 60);
break;
case NOTELILOW_GADGET:
tool->notelilow = (UBYTE) (*functions->DragEmbossedProp)(window, NOTELILOW_GADGET);
if (tool->notelilow > tool->notelihigh)
{
tool->notelilow = tool->notelihigh;
(*functions->ModifyEmbossedProp)(window, NOTELILOW_GADGET, tool->notelilow, 0, 0, 0, 0, 0);
(*functions->DrawEmbossedProp)(window, NOTELILOW_GADGET);
}
tool->sliderstorage[15+a] = tool->notelilow;
tool->writesw[15+a] = 1;
sprintf(storage16, "F043104C08%02lx0F%02lxF7",tool->part,tool->notelilow);
tool->notelilowsysex = storage16;
time = functions->timenow;
trans_hx(tool, time, tool->notelilowsysex, 0);
send_note(tool, functions->timenow, 60);
break;
case DRY_GADGET:
tool->dry = (UBYTE) (*functions->DragEmbossedProp)(window, DRY_GADGET);
tool->sliderstorage[16+a] = tool->dry;
tool->writesw[16+a] = 1;
sprintf(storage17, "F043104C08%02lx11%02lxF7",tool->part,tool->dry);
tool->drysysex = storage17;
time = functions->timenow;
trans_hx(tool, time, tool->drysysex, 0);
send_note(tool, functions->timenow, 60);
break;
case CHORUS_GADGET:
tool->chorus = (UBYTE) (*functions->DragEmbossedProp)(window, CHORUS_GADGET);
tool->sliderstorage[17+a] = tool->chorus;
tool->writesw[17+a] = 1;
sprintf(storage18, "F043104C08%02lx12%02lxF7",tool->part,tool->chorus);
tool->chorussysex = storage18;
time = functions->timenow;
trans_hx(tool, time, tool->chorussysex, 0);
send_note(tool, functions->timenow, 60);
break;
case REVERB_GADGET:
tool->reverb = (UBYTE) (*functions->DragEmbossedProp)(window, REVERB_GADGET);
tool->sliderstorage[18+a] = tool->reverb;
tool->writesw[18+a] = 1;
sprintf(storage19, "F043104C08%02lx13%02lxF7",tool->part,tool->reverb);
tool->reverbsysex = storage19;
time = functions->timenow;
trans_hx(tool, time, tool->reverbsysex, 0);
send_note(tool, functions->timenow, 60);
break;
case VARFX_GADGET:
tool->varfx = (UBYTE) (*functions->DragEmbossedProp)(window, VARFX_GADGET);
tool->sliderstorage[19+a] = tool->varfx;
tool->writesw[19+a] = 1;
sprintf(storage20, "F043104C08%02lx14%02lxF7",tool->part,tool->varfx);
tool->varfxsysex = storage20;
time = functions->timenow;
trans_hx(tool, time, tool->varfxsysex, 0);
send_note(tool, functions->timenow, 60);
break;
case VIBRATE_GADGET:
tool->vibrate = (UBYTE) (*functions->DragEmbossedProp)(window, VIBRATE_GADGET);
tool->sliderstorage[20+a] = tool->vibrate;
tool->writesw[20+a] = 1;
sprintf(storage21, "F043104C08%02lx15%02lxF7",tool->part,tool->vibrate);
tool->vibratesysex = storage21;
time = functions->timenow;
trans_hx(tool, time, tool->vibratesysex, 0);
send_note(tool, functions->timenow, 60);
break;
case VIBDEPTH_GADGET:
tool->vibdepth = (UBYTE) (*functions->DragEmbossedProp)(window, VIBDEPTH_GADGET);
tool->sliderstorage[21+a] = tool->vibdepth;
tool->writesw[21+a] = 1;
sprintf(storage22, "F043104C08%02lx16%02lxF7",tool->part,tool->vibdepth);
tool->vibdepthsysex = storage22;
time = functions->timenow;
trans_hx(tool, time, tool->vibdepthsysex, 0);
send_note(tool, functions->timenow, 60);
break;
case VIBDELAY_GADGET:
tool->vibdelay = (UBYTE) (*functions->DragEmbossedProp)(window, VIBDELAY_GADGET);
tool->sliderstorage[22+a] = tool->vibdelay;
tool->writesw[22+a] = 1;
sprintf(storage23, "F043104C08%02lx17%02lxF7",tool->part,tool->vibdelay);
tool->vibdelaysysex = storage23;
time = functions->timenow;
trans_hx(tool, time, tool->vibdelaysysex, 0);
send_note(tool, functions->timenow, 60);
break;
case FICUTOFFREQ_GADGET:
tool->ficutoffreq = (UBYTE) (*functions->DragEmbossedProp)(window, FICUTOFFREQ_GADGET);
tool->sliderstorage[23+a] = tool->ficutoffreq;
tool->writesw[23+a] = 1;
sprintf(storage24, "F043104C08%02lx18%02lxF7",tool->part,tool->ficutoffreq);
tool->ficutoffreqsysex = storage24;
time = functions->timenow;
trans_hx(tool, time, tool->ficutoffreqsysex, 0);
send_note(tool, functions->timenow, 60);
break;
case FICUTOFFRESON_GADGET:
tool->ficutoffreson = (UBYTE) (*functions->DragEmbossedProp)(window, FICUTOFFRESON_GADGET);
tool->sliderstorage[24+a] = tool->ficutoffreson;
tool->writesw[24+a] = 1;
sprintf(storage25, "F043104C08%02lx19%02lxF7",tool->part,tool->ficutoffreson);
tool->ficutoffresonsysex = storage25;
time = functions->timenow;
trans_hx(tool, time, tool->ficutoffresonsysex, 0);
send_note(tool, functions->timenow, 60);
break;
case ATTACK_GADGET:
tool->attack = (UBYTE) (*functions->DragEmbossedProp)(window, ATTACK_GADGET);
tool->sliderstorage[25+a] = tool->attack;
tool->writesw[25+a] = 1;
sprintf(storage26, "F043104C08%02lx1A%02lxF7",tool->part,tool->attack);
tool->attacksysex = storage26;
time = functions->timenow;
trans_hx(tool, time, tool->attacksysex, 0);
send_note(tool, functions->timenow, 60);
break;
case DECAY_GADGET:
tool->decay = (UBYTE) (*functions->DragEmbossedProp)(window, DECAY_GADGET);
tool->sliderstorage[26+a] = tool->decay;
tool->writesw[26+a] = 1;
sprintf(storage27, "F043104C08%02lx1B%02lxF7",tool->part,tool->decay);
tool->decaysysex = storage27;
time = functions->timenow;
trans_hx(tool, time, tool->decaysysex, 0);
send_note(tool, functions->timenow, 60);
break;
case RELEASE_GADGET:
tool->release = (UBYTE) (*functions->DragEmbossedProp)(window, RELEASE_GADGET);
tool->sliderstorage[27+a] = tool->release;
tool->writesw[27+a] = 1;
sprintf(storage28, "F043104C08%02lx1C%02lxF7",tool->part,tool->release);
tool->releasesysex = storage28;
time = functions->timenow;
trans_hx(tool, time, tool->releasesysex, 0);
send_note(tool, functions->timenow, 60);
break;
case VXON_GADGET:
//tool->vxon = (UBYTE) (*functions->DragEmbossedProp)(window, VXON_GADGET);
if (tool->vxon)
{
boolchar[0]=0x2d;
tool->vxon = 0;
}
else
{
boolchar[0]=0x2a;
tool->vxon = 1;
}
(*functions->SelectEmbossed)(window, VXON_GADGET, tool->vxon);
tool->sliderstorage[28+a] = tool->vxon;
tool->writesw[28+a] = 1;
sprintf(storage29, "F043104C02015A%02lxF7",tool->vxon);
tool->vxonsysex = storage29;
time = functions->timenow;
trans_hx(tool, time, tool->vxonsysex, 0);
send_note(tool, functions->timenow, 60);
break;
case TUNEC_GADGET:
tool->tunec = (UBYTE) (*functions->DragEmbossedProp)(window, TUNEC_GADGET);
tool->sliderstorage[29+a] = tool->tunec;
tool->writesw[29+a] = 1;
sprintf(storage30, "F043104C08%02lx41%02lxF7",tool->part,tool->tunec);
tool->tunecsysex = storage30;
time = functions->timenow;
trans_hx(tool, time, tool->tunecsysex, 0);
send_note(tool, functions->timenow, 60);
break;
case TUNECIS_GADGET:
tool->tunecis = (UBYTE) (*functions->DragEmbossedProp)(window, TUNECIS_GADGET);
tool->sliderstorage[30+a] = tool->tunecis;
tool->writesw[30+a] = 1;
sprintf(storage31, "F043104C08%02lx42%02lxF7",tool->part,tool->tunecis);
tool->tunecissysex = storage31;
time = functions->timenow;
trans_hx(tool, time, tool->tunecissysex, 0);
send_note(tool, functions->timenow, 60);
break;
case TUNED_GADGET:
tool->tuned = (UBYTE) (*functions->DragEmbossedProp)(window, TUNED_GADGET);
tool->sliderstorage[31+a] = tool->tuned;
tool->writesw[31+a] = 1;
sprintf(storage32, "F043104C08%02lx43%02lxF7",tool->part,tool->tuned);
tool->tunedsysex = storage32;
time = functions->timenow;
trans_hx(tool, time, tool->tunedsysex, 0);
send_note(tool, functions->timenow, 60);
break;
case TUNEDIS_GADGET:
tool->tunedis = (UBYTE) (*functions->DragEmbossedProp)(window, TUNEDIS_GADGET);
tool->sliderstorage[32+a] = tool->tunedis;
tool->writesw[32+a] = 1;
sprintf(storage33, "F043104C08%02lx44%02lxF7",tool->part,tool->tunedis);
tool->tunedissysex = storage33;
time = functions->timenow;
trans_hx(tool, time, tool->tunedissysex, 0);
send_note(tool, functions->timenow, 60);
break;
case TUNEE_GADGET:
tool->tunee = (UBYTE) (*functions->DragEmbossedProp)(window, TUNEE_GADGET);
tool->sliderstorage[33+a] = tool->tunee;
tool->writesw[33+a] = 1;
sprintf(storage34, "F043104C08%02lx45%02lxF7",tool->part,tool->tunee);
tool->tuneesysex = storage34;
time = functions->timenow;
trans_hx(tool, time, tool->tuneesysex, 0);
send_note(tool, functions->timenow, 60);
break;
case TUNEF_GADGET:
tool->tunef = (UBYTE) (*functions->DragEmbossedProp)(window, TUNEF_GADGET);
tool->sliderstorage[34+a] = tool->tunef;
tool->writesw[34+a] = 1;
sprintf(storage35, "F043104C08%02lx46%02lxF7",tool->part,tool->tunef);
tool->tunefsysex = storage35;
time = functions->timenow;
trans_hx(tool, time, tool->tunefsysex, 0);
send_note(tool, functions->timenow, 60);
break;
case TUNEFIS_GADGET:
tool->tunefis = (UBYTE) (*functions->DragEmbossedProp)(window, TUNEFIS_GADGET);
tool->sliderstorage[35+a] = tool->tunefis;
tool->writesw[35+a] = 1;
sprintf(storage36, "F043104C08%02lx47%02lxF7",tool->part,tool->tunefis);
tool->tunefissysex = storage36;
time = functions->timenow;
trans_hx(tool, time, tool->tunefissysex, 0);
send_note(tool, functions->timenow, 60);
break;
case TUNEG_GADGET:
tool->tuneg = (UBYTE) (*functions->DragEmbossedProp)(window, TUNEG_GADGET);
tool->sliderstorage[36+a] = tool->tuneg;
tool->writesw[36+a] = 1;
sprintf(storage37, "F043104C08%02lx48%02lxF7",tool->part,tool->tuneg);
tool->tunegsysex = storage37;
time = functions->timenow;
trans_hx(tool, time, tool->tunegsysex, 0);
send_note(tool, functions->timenow, 60);
break;
case TUNEGIS_GADGET:
tool->tunegis = (UBYTE) (*functions->DragEmbossedProp)(window, TUNEGIS_GADGET);
tool->sliderstorage[37+a] = tool->tunegis;
tool->writesw[37+a] = 1;
sprintf(storage38, "F043104C08%02lx49%02lxF7",tool->part,tool->tunegis);
tool->tunegissysex = storage38;
time = functions->timenow;
trans_hx(tool, time, tool->tunegissysex, 0);
send_note(tool, functions->timenow, 60);
break;
case TUNEA_GADGET:
tool->tunea = (UBYTE) (*functions->DragEmbossedProp)(window, TUNEA_GADGET);
tool->sliderstorage[38+a] = tool->tunea;
tool->writesw[38+a] = 1;
sprintf(storage39, "F043104C08%02lx4A%02lxF7",tool->part,tool->tunea);
tool->tuneasysex = storage39;
time = functions->timenow;
trans_hx(tool, time, tool->tuneasysex, 0);
send_note(tool, functions->timenow, 60);
break;
case TUNEAIS_GADGET:
tool->tuneais = (UBYTE) (*functions->DragEmbossedProp)(window, TUNEAIS_GADGET);
tool->sliderstorage[39+a] = tool->tuneais;
tool->writesw[39+a] = 1;
sprintf(storage40, "F043104C08%02lx4B%02lxF7",tool->part,tool->tuneais);
tool->tuneaissysex = storage40;
time = functions->timenow;
trans_hx(tool, time, tool->tuneaissysex, 0);
send_note(tool, functions->timenow, 60);
break;
case TUNEB_GADGET:
tool->tuneb = (UBYTE) (*functions->DragEmbossedProp)(window, TUNEB_GADGET);
tool->sliderstorage[40+a] = tool->tuneb;
tool->writesw[40+a] = 1;
sprintf(storage41, "F043104C08%02lx4C%02lxF7",tool->part,tool->tuneb);
tool->tunebsysex = storage41;
time = functions->timenow;
trans_hx(tool, time, tool->tunebsysex, 0);
send_note(tool, functions->timenow, 60);
break;
case PINILVL_GADGET:
tool->pinilvl = (UBYTE) (*functions->DragEmbossedProp)(window, PINILVL_GADGET);
tool->sliderstorage[41+a] = tool->pinilvl;
tool->writesw[41+a] = 1;
sprintf(storage42, "F043104C08%02lx69%02lxF7",tool->part,tool->pinilvl);
tool->pinilvlsysex = storage42;
time = functions->timenow;
trans_hx(tool, time, tool->pinilvlsysex, 0);
send_note(tool, functions->timenow, 60);
break;
case PATTACK_GADGET:
tool->pattack = (UBYTE) (*functions->DragEmbossedProp)(window, PATTACK_GADGET);
tool->sliderstorage[42+a] = tool->pattack;
tool->writesw[42+a] = 1;
sprintf(storage43, "F043104C08%02lx6A%02lxF7",tool->part,tool->pattack);
tool->pattacksysex = storage43;
time = functions->timenow;
trans_hx(tool, time, tool->pattacksysex, 0);
send_note(tool, functions->timenow, 60);
break;
case PRELLVL_GADGET:
tool->prellvl = (UBYTE) (*functions->DragEmbossedProp)(window, PRELLVL_GADGET);
tool->sliderstorage[43+a] = tool->prellvl;
tool->writesw[43+a] = 1;
sprintf(storage44, "F043104C08%02lx6B%02lxF7",tool->part,tool->prellvl);
tool->prellvlsysex = storage44;
time = functions->timenow;
trans_hx(tool, time, tool->prellvlsysex, 0);
send_note(tool, functions->timenow, 60);
break;
case PRELTIM_GADGET:
tool->preltim = (UBYTE) (*functions->DragEmbossedProp)(window, PRELTIM_GADGET);
tool->sliderstorage[44+a] = tool->preltim;
tool->writesw[44+a] = 1;
sprintf(storage45, "F043104C08%02lx6C%02lxF7",tool->part,tool->preltim);
tool->preltimsysex = storage45;
time = functions->timenow;
trans_hx(tool, time, tool->preltimsysex, 0);
send_note(tool, functions->timenow, 60);
break;
case DEFAULT_GADGET:
defaultslider(tool, window);
send_note(tool, functions->timenow, 60);
break;
case WRITE_GADGET:
if ((*functions->areyousure)("write to track ? Play-pointer on right place ?"))
{
if (!functions->running)
{
time = functions->starttime;
for (b=0; b<=15; b++)
{
if (tool->writesw[(b*45)] == 1)
{
sprintf(storage1, "F043104C08%02lx01%02lxF7",b,tool->sliderstorage[b*45]);
tool->voicetypsysex = storage1;
trans_hx(tool, time+1, tool->voicetypsysex, 1);
}
if (tool->writesw[1+(b*45)] == 1)
{
sprintf(storage2, "F043104C08%02lx02%02lxF7",b,tool->sliderstorage[b*45+1]);
tool->banksysex = storage2;
trans_hx(tool, time+2, tool->banksysex, 1);
}
if (tool->writesw[2+(b*45)] == 1)
{
sprintf(storage3, "F043104C08%02lx03%02lxF7",b,tool->sliderstorage[b*45+2]);
tool->programsysex = storage3;
trans_hx(tool, time+3, tool->programsysex, 1);
}
if (tool->writesw[3+(b*45)] == 1)
{
sprintf(storage4, "F043104C08%02lx04%02lxF7",b,tool->sliderstorage[b*45+3]);
tool->midichansysex = storage4;
trans_hx(tool, time, tool->midichansysex, 1);
}
if (tool->writesw[4+(b*45)] == 1)
{
sprintf(storage5, "F043104C08%02lx05%02lxF7",b,tool->sliderstorage[b*45+4]);
tool->monopolysysex = storage5;
trans_hx(tool, time+4, tool->monopolysysex, 1);
}
if (tool->writesw[5+(b*45)] == 1)
{
sprintf(storage6, "F043104C08%02lx06%02lxF7",b,tool->sliderstorage[b*45+5]);
tool->keyassysex = storage6;
trans_hx(tool, time+5, tool->keyassysex, 1);
}
if (tool->writesw[6+(b*45)] == 1)
{
sprintf(storage7, "F043104C08%02lx08%02lxF7",b,tool->sliderstorage[b*45+6]);
tool->noteshiftsysex = storage7;
trans_hx(tool, time+6, tool->noteshiftsysex, 1);
}
if (tool->writesw[7+(b*45)] == 1) // detuner & detunef - data
{
sprintf(storage8, "F043104C08%02lx09%02lx%02lxF7",b,tool->sliderstorage[b*45+7],tool->sliderstorage[b*45+8]);
tool->detunersysex = storage8;
trans_hx(tool, time+7, tool->detunersysex, 1);
}
if (tool->writesw[9+(b*45)] == 1)
{
sprintf(storage10, "F043104C08%02lx0B%02lxF7",b,tool->sliderstorage[b*45+9]);
tool->volumesysex = storage10;
trans_hx(tool, time+8, tool->volumesysex, 1);
}
if (tool->writesw[10+(b*45)] == 1)
{
sprintf(storage11, "F043104C08%02lx0C%02lxF7",b,tool->sliderstorage[b*45+10]);
tool->velsdepthsysex = storage11;
trans_hx(tool, time+9, tool->velsdepthsysex, 1);
}
if (tool->writesw[11+(b*45)] == 1)
{
sprintf(storage12, "F043104C08%02lx0D%02lxF7",b,tool->sliderstorage[b*45+11]);
tool->velsoffsetsysex = storage12;
trans_hx(tool, time+10, tool->velsoffsetsysex, 1);
}
if (tool->writesw[12+(b*45)] == 1)
{
sprintf(storage13, "F043104C08%02lx6E%02lxF7",b,tool->sliderstorage[b*45+12]);
tool->velihighsysex = storage13;
trans_hx(tool, time+11, tool->velihighsysex, 1);
}
if (tool->writesw[13+(b*45)] == 1)
{
sprintf(storage14, "F043104C08%02lx0E%02lxF7",b,tool->sliderstorage[b*45+13]);
tool->pansysex = storage14;
trans_hx(tool, time+12, tool->pansysex, 1);
}
if (tool->writesw[14+(b*45)] == 1)
{
sprintf(storage15, "F043104C08%02lx10%02lxF7",b,tool->sliderstorage[b*45+14]);
tool->notelihighsysex = storage15;
trans_hx(tool, time+13, tool->notelihighsysex, 1);
}
if (tool->writesw[15+(b*45)] == 1)
{
sprintf(storage16, "F043104C08%02lx0F%02lxF7",b,tool->sliderstorage[b*45+15]);
tool->notelilowsysex = storage16;
trans_hx(tool, time+14, tool->notelilowsysex, 1);
}
if (tool->writesw[16+(b*45)] == 1)
{
sprintf(storage17, "F043104C08%02lx11%02lxF7",b,tool->sliderstorage[b*45+16]);
tool->drysysex = storage17;
trans_hx(tool, time+15, tool->drysysex, 1);
}
if (tool->writesw[17+(b*45)] == 1)
{
sprintf(storage18, "F043104C08%02lx12%02lxF7",b,tool->sliderstorage[b*45+17]);
tool->chorussysex = storage18;
trans_hx(tool, time+16, tool->chorussysex, 1);
}
if (tool->writesw[18+(b*45)] == 1)
{
sprintf(storage19, "F043104C08%02lx13%02lxF7",b,tool->sliderstorage[b*45+18]);
tool->reverbsysex = storage19;
trans_hx(tool, time+17, tool->reverbsysex, 1);
}
if (tool->writesw[19+(b*45)] == 1)
{
sprintf(storage20, "F043104C08%02lx14%02lxF7",b,tool->sliderstorage[b*45+19]);
tool->varfxsysex = storage20;
trans_hx(tool, time+18, tool->varfxsysex, 1);
}
if (tool->writesw[20+(b*45)] == 1)
{
sprintf(storage21, "F043104C08%02lx15%02lxF7",b,tool->sliderstorage[b*45+20]);
tool->vibratesysex = storage21;
trans_hx(tool, time+19, tool->vibratesysex, 1);
}
if (tool->writesw[21+(b*45)] == 1)
{
sprintf(storage22, "F043104C08%02lx16%02lxF7",b,tool->sliderstorage[b*45+21]);
tool->vibdepthsysex = storage22;
trans_hx(tool, time+20, tool->vibdepthsysex, 1);
}
if (tool->writesw[22+(b*45)] == 1)
{
sprintf(storage23, "F043104C08%02lx17%02lxF7",b,tool->sliderstorage[b*45+22]);
tool->vibdelaysysex = storage23;
trans_hx(tool, time+21, tool->vibdelaysysex, 1);
}
if (tool->writesw[23+(b*45)] == 1)
{
sprintf(storage24, "F043104C08%02lx18%02lxF7",b,tool->sliderstorage[b*45+23]);
tool->ficutoffreqsysex = storage24;
trans_hx(tool, time+22, tool->ficutoffreqsysex, 1);
}
if (tool->writesw[24+(b*45)] == 1)
{
sprintf(storage25, "F043104C08%02lx19%02lxF7",b,tool->sliderstorage[b*45+24]);
tool->ficutoffresonsysex = storage25;
trans_hx(tool, time+23, tool->ficutoffresonsysex, 1);
}
if (tool->writesw[25+(b*45)] == 1)
{
sprintf(storage26, "F043104C08%02lx1A%02lxF7",b,tool->sliderstorage[b*45+25]);
tool->attacksysex = storage26;
trans_hx(tool, time+24, tool->attacksysex, 1);
}
if (tool->writesw[26+(b*45)] == 1)
{
sprintf(storage27, "F043104C08%02lx1B%02lxF7",b,tool->sliderstorage[b*45+26]);
tool->decaysysex = storage27;
trans_hx(tool, time+25, tool->decaysysex, 1);
}
if (tool->writesw[27+(b*45)] == 1)
{
sprintf(storage28, "F043104C08%02lx1C%02lxF7",b,tool->sliderstorage[b*45+27]);
tool->releasesysex = storage28;
trans_hx(tool, time+26, tool->releasesysex, 1);
}
if (tool->writesw[28+(b*45)] == 1)
{
sprintf(storage29, "F043104C02015A%02lxF7",tool->sliderstorage[b*45+28]);
tool->vxonsysex = storage29;
trans_hx(tool, time+27, tool->vxonsysex, 1);
}
if (tool->writesw[29+(b*45)] == 1)
{
sprintf(storage30, "F043104C08%02lx41%02lxF7",b,tool->sliderstorage[b*45+29]);
tool->tunecsysex = storage30;
trans_hx(tool, time+28, tool->tunecsysex, 1);
}
if (tool->writesw[30+(b*45)] == 1)
{
sprintf(storage31, "F043104C08%02lx42%02lxF7",b,tool->sliderstorage[b*45+30]);
tool->tunecissysex = storage31;
trans_hx(tool, time+29, tool->tunecissysex, 1);
}
if (tool->writesw[31+(b*45)] == 1)
{
sprintf(storage32, "F043104C08%02lx43%02lxF7",b,tool->sliderstorage[b*45+31]);
tool->tunedsysex = storage32;
trans_hx(tool, time+30, tool->tunedsysex, 1);
}
if (tool->writesw[32+(b*45)] == 1)
{
sprintf(storage33, "F043104C08%02lx44%02lxF7",b,tool->sliderstorage[b*45+32]);
tool->tunedissysex = storage33;
trans_hx(tool, time+31, tool->tunedissysex, 1);
}
if (tool->writesw[33+(b*45)] == 1)
{
sprintf(storage34, "F043104C08%02lx45%02lxF7",b,tool->sliderstorage[b*45+33]);
tool->tuneesysex = storage34;
trans_hx(tool, time+32, tool->tuneesysex, 1);
}
if (tool->writesw[34+(b*45)] == 1)
{
sprintf(storage35, "F043104C08%02lx46%02lxF7",b,tool->sliderstorage[b*45+34]);
tool->tunefsysex = storage35;
trans_hx(tool, time+33, tool->tunefsysex, 1);
}
if (tool->writesw[35+(b*45)] == 1)
{
sprintf(storage36, "F043104C08%02lx47%02lxF7",b,tool->sliderstorage[b*45+35]);
tool->tunefissysex = storage36;
trans_hx(tool, time+34, tool->tunefissysex, 1);
}
if (tool->writesw[36+(b*45)] == 1)
{
sprintf(storage37, "F043104C08%02lx48%02lxF7",b,tool->sliderstorage[b*45+36]);
tool->tunegsysex = storage37;
trans_hx(tool, time+35, tool->tunegsysex, 1);
}
if (tool->writesw[37+(b*45)] == 1)
{
sprintf(storage38, "F043104C08%02lx49%02lxF7",b,tool->sliderstorage[b*45+37]);
tool->tunegissysex = storage38;
trans_hx(tool, time+36, tool->tunegissysex, 1);
}
if (tool->writesw[38+(b*45)] == 1)
{
sprintf(storage39, "F043104C08%02lx4A%02lxF7",b,tool->sliderstorage[b*45+38]);
tool->tuneasysex = storage39;
trans_hx(tool, time+37, tool->tuneasysex, 1);
}
if (tool->writesw[39+(b*45)] == 1)
{
sprintf(storage40, "F043104C08%02lx4B%02lxF7",b,tool->sliderstorage[b*45+39]);
tool->tuneaissysex = storage40;
trans_hx(tool, time+38, tool->tuneaissysex, 1);
}
if (tool->writesw[40+(b*45)] == 1)
{
sprintf(storage41, "F043104C08%02lx4C%02lxF7",b,tool->sliderstorage[b*45+40]);
tool->tunebsysex = storage41;
trans_hx(tool, time+39, tool->tunebsysex, 1);
}
if (tool->writesw[41+(b*45)] == 1)
{
sprintf(storage42, "F043104C08%02lx69%02lxF7",b,tool->sliderstorage[b*45+41]);
tool->pinilvlsysex = storage42;
trans_hx(tool, time+40, tool->pinilvlsysex, 1);
}
if (tool->writesw[42+(b*45)] == 1)
{
sprintf(storage43, "F043104C08%02lx6A%02lxF7",b,tool->sliderstorage[b*45+42]);
tool->pattacksysex = storage43;
trans_hx(tool, time+41, tool->pattacksysex, 1);
}
if (tool->writesw[43+(b*45)] == 1)
{
sprintf(storage44, "F043104C08%02lx6B%02lxF7",b,tool->sliderstorage[b*45+43]);
tool->prellvlsysex = storage44;
trans_hx(tool, time+42, tool->prellvlsysex, 1);
}
if (tool->writesw[44+(b*45)] == 1)
{
sprintf(storage45, "F043104C08%02lx6C%02lxF7",b,tool->sliderstorage[b*45+44]);
tool->preltimsysex = storage45;
trans_hx(tool, time+43, tool->preltimsysex, 1);
}
time=time+50;
}
}
}
send_note(tool, functions->timenow, 60);
break;
default:
break;
}
}
else if (class == GADGETUP)
{
/* Nothing. */
}
}
tool->tool.window = 0;
tool->tool.left = window->LeftEdge;
tool->tool.top = window->TopEdge;
tool->tool.width = window->Width;
tool->tool.height = window->Height;
tool->tool.touched = TOUCH_INIT | TOUCH_EDIT;
for (i = VOICETYP_GADGET;
i <= PRELTIM_GADGET;
i ++)
{
(*functions->EmbossedPropOff)(window, i);
}
(*functions->EmbossOff)(window, WRITE_GADGET);
(*functions->EmbossOff)(window, DEFAULT_GADGET);
(*functions->EmbossWindowOff)(window);
(*functions->FlashyCloseWindow)(window);
(*functions->DeleteNewWindow)(newwindow);
}
//to leave the tool correct
void __saveds removetool()
{
FreeVec(matrix);
FreeVec(MPXG);
}
//start of the tool
struct ToolMaster * inittoolmaster()
{
int i = 0, pbank = 0, sfxpbank = 0;
if (!(MPXG=(UWORD *)AllocVec(sizeof (MPXGdata), MEMF_CHIP|MEMF_CLEAR))) return(NULL);
CopyMem(&MPXGdata, MPXG, sizeof (MPXGdata));
if(!(matrix = (STRPTR *)AllocVec(MAX_BANKS*MAX_PROGRAMS*sizeof(STRPTR), MEMF_ANY|MEMF_CLEAR)))
return(NULL);
while (v[i].bank != BE)
{
pbank = v[i].bank;
matrix[pbank * MAX_PROGRAMS + v[i].program] = (STRPTR)v[i].name;
i++;
}
MPXG_image.ImageData = MPXG;
memset((char *)&master, 0, sizeof(struct ToolMaster));
master.toolid = MPXG_ID;
master.image = &MPXG_image;
strcpy(master.name, MPXG_NAME);
master.edittool = edittoolcode;
master.processevent = processeventcode;
master.tooltype = MPXG_TYPE;
master.toolsize = sizeof(struct MPXGTool);
master.removetool = removetool;
return(&master);
}